websockets 的 PayloadTooBig 错误
问题说明:
消息超出了 websockets
库默认的大小限制
解决办法
在 websockets
库中,您可以在连接时设置 max_size
参数来允许更大的消息。
示例代码:
import asyncio
import websockets
import json
async def hello(port, message):
# 设定消息的最大大小为2MB,您可以根据需要调整这个值
max_size = 2 * 1024 * 1024 # 2MB
# 连接到WebSocket服务器时增加了max_size参数
async with websockets.connect(
f'ws://localhost:{port}/?token=12345615', max_size=max_size) as websocket:
await websocket.send(json.dumps(message))
print(f"> {message}")
while True:
# 尝试接收消息
greeting = await websocket.recv()
response = json.loads(greeting)
print(response)
if response.get("status") == 2:
break
await websocket.close()
# asyncio.get_event_loop().stop() # 通常不建议在函数内部停止事件循环
# asyncio.get_event_loop().close() # 通常不建议在函数内部关闭事件循环
# 使用示例
# asyncio.run(hello(63448, {"your": "message"})) # 替换这里的message为实际要发送的消息
# 程序入口
if __name__ == "__main__":
port = 63448 # 示例端口号
message = {"your": "message"} # 替换这里的message为实际要发送的消息
asyncio.run(hello(port, message))
License:
CC BY 4.0