gpt4 book ai didi

python - 从 websocket 读取数据而不阻塞代码

转载 作者:行者123 更新时间:2023-12-05 07:22:41 25 4
gpt4 key购买 nike

我正在尝试使用 python 的 asyncio 编写非阻塞代码。关于这个主题有几个线程,但我仍然没有设法使它们适应代码。这将是一个基于 this 的最小示例:

import asyncio
import websockets

async def ws_rec(websocket, path):
while True:
data = await websocket.recv()
print(data)

start_server = websockets.serve(ws_rec, 'localhost', 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
print("ok")

如何调整代码以打印“ok”?为什么我什至需要 asyncio?

最佳答案

非常感谢您的回答。我找到了使用 simple-websocket 的解决方法

from simple_websocket_server import WebSocketServer, WebSocket

class SimpleEcho(WebSocket):
def handle(self):
# echo message back to client
print(self.data)
self.send_message(self.data)

def connected(self):
print(self.address, 'connected')

def handle_close(self):
print(self.address, 'closed')


def run():
server = WebSocketServer('localhost', 8765, SimpleEcho)
server.serve_forever()

from threading import Thread

ws_run = Thread(target=run)
ws_run.start()

print("ok")

现在,这对我来说似乎是一个可行的解决方案。

关于python - 从 websocket 读取数据而不阻塞代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56438301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com