类之间的Python异步通信

时间:2018-06-24 14:14:05

标签: python websocket twisted coroutine gevent

我实现了一个类,该类连接到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()函数,该函数充当每次接收到新消息时都会触发的回调。

我不想不时调用函数,以将最新消息GET从websocket发送到Broker,而是将msg这些消息发送到到达PUSH的经纪人。

on_message()

enter image description here

如何用Python最好地解决这个问题?我正在寻找一种将broker = Broker() hearbeats = broker.heartbeat() for beat in heartbeats: ... s websocketClient处收到的新消息推送到on_message()的方法,以便在主应用程序中我可以订阅该功能并等待更新。

1 个答案:

答案 0 :(得分:1)

这可以使用反应堆模式来解决-异步处理请求,然后进行同步调度。

通过搜索“反应堆gevent”和“扭曲的反应堆”,您会找到许多很好的示例。有几种变体。由于总的选择将取决于示例代码中未发现的其他系统级问题,因此我将避免建议使用特定的版本。