0

我有两种协议,一种是 WebSocket 服务器,另一种是 ZeroMQ 拉式套接字。我想将收到我的 ZMQ 的东西转发到 WebSocket。这可能吗?

class WebSocketProtocol(WebSocketServerProtocol):

    def onMessage(self, msg, binary):
        print "Received: ", msg, binary
        self.sendMessage(msg, binary)


class MyProto(ZmqPullConnection):

    def onPull(self, message):
        print "Recevied: ", message
        # How to I call sendMessage(message) from here?

if __name__ == '__main__':
    zf = ZmqFactory()
    e = ZmqEndpoint("bind", "tcp://127.0.0.1:5500")   
    s = MyProto(zf, e)

    factory_ws = WebSocketServerFactory("ws://127.0.0.1:9500/echo", debug = False)
    factory_ws.protocol = WebSocketProtocol
    listenWS(factory_ws)
    reactor.run()
4

1 回答 1

0

看看这个例子。新WebSocketServerProtocol实例在WebSocketServerFactory. 然后后者有一种方法可以在所有当前连接的客户端broadcast上分派事件。

鉴于此,您所需要的只是WebSocketServerFactory在您的MyProto实例 ( s.factory_ws = factory_ws) 上添加一个引用,然后broadcast从您的 0MQ 原型中调用该方法。

于 2014-03-12T00:16:47.887 回答