Python UDP和WebSocket结合在一起

Python UDP和WebSocket结合在一起,python,python-3.x,Python,Python 3.x,我正在写一份申请书。我在哪里使用python WebSocket。现在我需要UDP和WS在不同的端口上异步运行和侦听 我无法执行此操作,因为WS-recv()会无限期地等待,直到收到消息为止。消息将被接收并推送到队列中。我需要UDP接收并推送到同一队列。此类仅实现WebSocket。我需要另一个具有UDP的类,并且两个类实例都异步运行 导入WebSocket 导入json 从sinric.command.mainqueue导入队列 来自sinric.callback\u handler.cbha

我正在写一份申请书。我在哪里使用python WebSocket。现在我需要UDP和WS在不同的端口上异步运行和侦听

我无法执行此操作,因为WS-recv()会无限期地等待,直到收到消息为止。消息将被接收并推送到队列中。我需要UDP接收并推送到同一队列。此类仅实现WebSocket。我需要另一个具有UDP的类,并且两个类实例都异步运行

导入WebSocket
导入json
从sinric.command.mainqueue导入队列
来自sinric.callback\u handler.cbhandler
导入回调处理程序
从时间上导入睡眠
SinricProSocket类:
定义初始化(self、apiKey、deviceId、回调):
self.apiKey=apiKey
self.deviceId=设备ID
self.connection=None
self.callbacks=回调
self.callbackHandler=callbackHandler(self.callbacks)
通过
异步def连接(自):#生产者
self.connection=wait websockets.client.connect('ws://2.5.2.2:301',
额外_头={'Authorization':self.apiKey,
'DeviceID':self.DeviceID},
ping_间隔=30000,ping_超时=10000)
如果self.connection.open打开:
打印('客户端已连接')
返回自连接
异步def sendMessage(自我,消息):
等待自我连接发送(消息)
异步def接收消息(自身、连接):
尝试:
message=wait connection.recv()
queue.put(json.loads(message))
除websockets.exceptions.ConnectionClosed外:
打印('与服务器的连接已关闭')
异步def句柄(自):
#睡眠(6)
当queue.qsize()大于0时:
等待self.callbackHandler.handleCallBacks(queue.get(),self.connection)
返回

感谢您在评论中抽出时间。我通过在两个不同的守护进程线程中运行WS和UDP实例解决了这个问题。

解决这个问题的一个好方法是使用线程。您可以接受消息并将其放入队列,然后在其他线程上处理该队列。

您可以添加任何相关代码、一些所需输出等吗?是的,我只实现了WS,您好,对不起,您可以在此处显式包含该代码吗?它使人们更有可能帮助你,因为他们可以立即介入问题。:)虽然我可以用代码或更多信息更好地回答问题,但也许你会想使用多线程?@grantgarison我也尝试过线程。他没有成功。如果你能给我举个例子就好了:)。是的,谢谢。我也做了同样的事