从Twisted factory(Python)获取对象实例

2024-09-27 21:24:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Autohan websockets库,代码如下:

    from twisted.internet import reactor
    from autobahn.websocket import WebSocketServerFactory, \
                                   WebSocketServerProtocol, \
                                   listenWS


    class EchoServerProtocol(WebSocketServerProtocol):

       def onMessage(self, msg, binary):
          self.sendMessage(msg, binary)

       def sendRandomMessage(message):
          self.sendMessage(message,true)


    if __name__ == '__main__':

       factory = WebSocketServerFactory("ws://192.168.1.135:9999", debug = False)
       factory.protocol = EchoServerProtocol
       listenWS(factory)
       reactor.run()

       #insert random code here.  Things happen independent of the connection state.
       #somehow access EchoServerProtocolINSTANCE.sendMessage("MESSAGE_HERE")

这段代码在接收消息方面工作得很好,但是我如何访问EchoServerProtocol实例以便随时发送任意消息?在


Tags: 代码fromimportselfmessagefactorydefmsg
1条回答
网友
1楼 · 发布于 2024-09-27 21:24:08

一种方法是向工厂注册协议实例,并通过工厂从应用程序的其余部分进行通信。在

下面是一个例子:

https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/broadcast/server.py#L34

在这个例子中,每个协议实例在WebSocket会话建立之后在工厂中注册自己。然后,您可以通过工厂将消息广播到所有当前连接的协议实例。在

相关问题 更多 >

    热门问题