为什么 python websockets 客户端每 50 秒重置一次连接?
Why a python websockets client resets a connection every 50 seconds?
pythonwebsockets
客户端出错。客户端每约 50 秒重置一次连接。
服务器显示错误:
Traceback (most recent call last):
File ".\main.py", line 133, in websocket_endpoint
await Importer(websocket).start()
File ".\main.py", line 127, in start
await self.receive_data(await self.websocket.receive_json())
File "C:\python\env\py38\lib\site-packages\starlette\websockets.py", line 98, in receive_json
self._raise_on_disconnect(message)
File "C:\python\env\py38\lib\site-packages\starlette\websockets.py", line 80, in _raise_on_disconnect
raise WebSocketDisconnect(message["code"])
starlette.websockets.WebSocketDisconnect: 1006
客户端没有显示任何错误。
FastApi 上的服务器 运行 帮助 uvicorn
。
uviconr main.app --reload --ws websockets
Websockets
是异步的,如果存在线程阻塞超过 50 秒,那么连接将重置。为了解决这个问题,需要找到阻塞线程的函数和 运行 它们的帮助:
result = await loop.run_in_executor(None, blocking_io_function)
pythonwebsockets
客户端出错。客户端每约 50 秒重置一次连接。
服务器显示错误:
Traceback (most recent call last):
File ".\main.py", line 133, in websocket_endpoint
await Importer(websocket).start()
File ".\main.py", line 127, in start
await self.receive_data(await self.websocket.receive_json())
File "C:\python\env\py38\lib\site-packages\starlette\websockets.py", line 98, in receive_json
self._raise_on_disconnect(message)
File "C:\python\env\py38\lib\site-packages\starlette\websockets.py", line 80, in _raise_on_disconnect
raise WebSocketDisconnect(message["code"])
starlette.websockets.WebSocketDisconnect: 1006
客户端没有显示任何错误。
FastApi 上的服务器 运行 帮助 uvicorn
。
uviconr main.app --reload --ws websockets
Websockets
是异步的,如果存在线程阻塞超过 50 秒,那么连接将重置。为了解决这个问题,需要找到阻塞线程的函数和 运行 它们的帮助:
result = await loop.run_in_executor(None, blocking_io_function)