服务器在一段时间后关闭客户端的连接,客户端在尝试发送消息后自动断开连接:
newmsg = await websocket.recv()
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:
uwopmtnx2#
可能不是来自客户端的代码。我是从服务器端,因为一个错字。还应该检查服务器端的日志,看看是否有任何错误。
fhity93d3#
我的案例是服务器端处理错误的密钥。预期服务器:
{ "data": 1, "build_id": 43 }
但我发送:
{ "data": 1, "build": 43 }
所以它不能处理build键,错误代码是1011。
build
1011
holgip5t4#
问题最有可能是一个阻塞代码,比如用户输入:
inp = input("enter a message")
类似的东西,无论是在服务器代码还是客户端代码中,只要找出它并用等效的非阻塞代码替换它,这个阻塞代码就是阻塞内部ping,pong请求的原因。.所以这个问题来了。
4条答案
按热度按时间yiytaume1#
问题是服务器正在向客户端发送ping命令并试图获得响应,该响应是newmsg,当msg没有被发送回时,服务器将在20秒后关闭连接,这是默认值,解决方案是取消激活来自服务器和客户端的ping命令,如果你想要: www.example.com
www.example.com :
uwopmtnx2#
可能不是来自客户端的代码。我是从服务器端,因为一个错字。还应该检查服务器端的日志,看看是否有任何错误。
fhity93d3#
我的案例是服务器端处理错误的密钥。
预期服务器:
但我发送:
所以它不能处理
build
键,错误代码是1011
。holgip5t4#
问题最有可能是一个阻塞代码,比如用户输入:
类似的东西,无论是在服务器代码还是客户端代码中,只要找出它并用等效的非阻塞代码替换它,这个阻塞代码就是阻塞内部ping,pong请求的原因。.所以这个问题来了。