websockets.exceptions.ConnectionClosedError:代码= 1011(意外错误),没有原因

mctunoxg  于 2023-04-30  发布在  其他
关注(0)|答案(4)|浏览(1618)

服务器在一段时间后关闭客户端的连接,客户端在尝试发送消息后自动断开连接:

newmsg = await websocket.recv()
yiytaume

yiytaume1#

问题是服务器正在向客户端发送ping命令并试图获得响应,该响应是newmsg,当msg没有被发送回时,服务器将在20秒后关闭连接,这是默认值,解决方案是取消激活来自服务器和客户端的ping命令,如果你想要: www.example.com

start_server = websockets.serve(receive_name, "localhost", 8765,ping_interval=None)

www.example.com :

async with websockets.connect(uri, ping_interval=None) as websocket:
uwopmtnx

uwopmtnx2#

可能不是来自客户端的代码。我是从服务器端,因为一个错字。还应该检查服务器端的日志,看看是否有任何错误。

fhity93d

fhity93d3#

我的案例是服务器端处理错误的密钥。
预期服务器:

{
    "data": 1,
    "build_id": 43
}

但我发送:

{
    "data": 1,
    "build": 43
}

所以它不能处理build键,错误代码是1011

holgip5t

holgip5t4#

问题最有可能是一个阻塞代码,比如用户输入:

inp = input("enter a message")

类似的东西,无论是在服务器代码还是客户端代码中,只要找出它并用等效的非阻塞代码替换它,这个阻塞代码就是阻塞内部ping,pong请求的原因。.所以这个问题来了。

相关问题