我实现了一个连接到websocket以接收异步消息的类。
class websocketClient(...):
def on_message(self, msg): # Gets automatically called
notifyBrokerAbout(msg) # How to proceed from here?
class Broker():
self.websocket = websocketClient(...)
self.websocket.start()
def heartbeat(self):
return self.websocket
心跳函数启动websocket并返回它。websocket类本身有一个on_message()
函数,该函数充当每次收到新消息时都会触发的回调函数。
我不想时不时地调用某个函数来将最新的msg
从websocket传出到代理,而是希望在这些消息到达on_message()
时立即将它们传出到代理。
broker = Broker()
hearbeats = broker.heartbeat()
for beat in heartbeats:
...
如何在Python中最好地解决这个问题?我正在寻找一种方法来将在websocketClient
的on_message()
传入的新消息推送到heartbeat()
,这样我就可以在主应用程序中订阅该函数并等待更新。
发布于 2018-06-24 23:05:09
这可以使用反应器模式来解决--异步处理请求,然后进行同步分派。
你可以通过搜索"reactor gevent“和"reactor twisted”找到很多很好的例子。有几种变体。我将避免推荐特定的变体,因为总体选择将取决于在示例代码中不明显的其他系统级问题。
https://stackoverflow.com/questions/51010732
复制相似问题