我正在使用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实例以便随时发送任意消息?在
一种方法是向工厂注册协议实例,并通过工厂从应用程序的其余部分进行通信。在
下面是一个例子:
https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/broadcast/server.py#L34
在这个例子中,每个协议实例在WebSocket会话建立之后在工厂中注册自己。然后,您可以通过工厂将消息广播到所有当前连接的协议实例。在
相关问题 更多 >
编程相关推荐