vue 和 fastapi websocket 通信时终端连接有延迟

2021-11-16 16:55:46 +08:00
 taomujian
当前端切换页面时发送断开请求,后端总是要过几秒才中断连接,在这期间前端新页面的请求会堵塞住,直到后端的 websocket 连接断开才会正常请求

python:
async def status(websocket: WebSocket):
await websocket.accept()
try:
while True:
request = await websocket.receive_json()
response = {'code': '', 'message': '', 'data': ''}
await websocket.send_json(response)
time.sleep(5)
except WebSocketDisconnect:
print('关闭连接')
await websocket.close()

vue:
destroyed() {
this.websocket.close()
},
2032 次点击
所在节点    Python
6 条回复
jenlors
2021-11-16 17:46:41 +08:00
为什么有一个 time.sleep(5)?
Latin
2021-11-16 17:53:06 +08:00
好家伙 flask 转 fastapi 又来一道 哈哈
Vegetable
2021-11-16 17:55:35 +08:00
time.sleep 天秀,哪怕一定要用 sleep ,请用 asyncio.sleep
vicalloy
2021-11-16 17:57:51 +08:00
别在 async 里用同步函数,sleep 换成
await asyncio.sleep(5)
taomujian
2021-11-16 18:21:01 +08:00
@vicalloy 好的,感谢感谢
taomujian
2021-11-16 18:21:24 +08:00
@long2ice 定时查询用的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/815825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX