Python Twisted - 如何通过连接的套接字连接发送数据?

时间:2017-07-06 08:47:15

标签: python websocket twisted autobahn

我的服务器如下: -

class MyServerProtocol(WebSocketServerProtocol):

    def onConnect(self, request):
        print("Client connecting: {0}".format(request.peer))

    def onOpen(self):
        print("WebSocket connection open.")

    def onMessage(self, payload, isBinary):
        self.sendMessage(payload, isBinary)

    def onClose(self, wasClean, code, reason):
        print("WebSocket connection closed: {0}".format(reason))

上面的代码收到消息并回复相同的消息。但是,我的用例不同。

我正在处理一些数据,将其存储到数据库中,然后最终想要将数据发送到连接的客户端,或者将一种数据发送到特定的连接客户端集,将另一种类型发送到另一个客户端。

我该怎么办?如何在课堂外调用sendMessage功能?

2 个答案:

答案 0 :(得分:0)

您需要继承WebSocketServerFactory以跟踪您的连接。

看一下这个example,它将所有打开的连接存储在一个列表中并广播给所有这些连接。您可以轻松地调整它以向特定客户发送特定消息。

答案 1 :(得分:0)

您确定不想只使用WAMP而不是原始WebSockets吗?

这可能对您的用例来说更容易,因为“向感兴趣的客户广播信息”正是发布/订阅模式的用途。