2017-07-06 159 views
2

我有一个服务器如下: -Python扭曲 - 如何通过连接的套接字连接发送数据?

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功能?

回答

0

你需要继承WebSocketServerFactory保持跟踪你的连接。

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

+0

感谢@Henry响应。当我玩弄代码时,我偶然发现了两种情况(疑惑)。 1)考虑一种情况,我有一个将数据保存在数据库中的API端点。在'post_save'信号(Django)中,我想将数据广播给连接的客户端。我该怎么做? '2)'为什么有2个端口,即'9000'和'8080'? – PythonEnthusiast

+0

API端点是Django应用程序上的websockets端点还是HTTP端点?是节约用的WebSockets消息或HTTP请求触发的数据? –

+0

HTTP请求...... – PythonEnthusiast

0

你确定你不想只是使用WAMP,而不是原始的WebSockets的?

这可能是您的使用情况要容易得多,因为“广播信息给有兴趣的客户”正是发布/订阅模式是。

+0

的任何链接,我可以读一下吗? – PythonEnthusiast

+0

http://crossbar.io/ – meejah