Python websocket客户端 - 从python代码向WebSocketServer发送消息

时间:2015-02-18 11:36:56

标签: python websocket tornado

我需要将系统日志发送到浏览器,因此我有一个基于龙卷风的websocket服务器运行如此。

class WSHandler(tornado.websocket.WebSocketHandler):

    def check_origin(self, origin):
        return True

    def get(self, *args, **kwargs):
        self.ip = self.get_argument('ip', None)
        self.action = self.get_argument('action', None)
        super(WSHandler, self).get(self, *args, **kwargs)

    def open(self, *args, **kwargs):

        clients.append(self)

    def on_message(self, message):

        ll = eval(message)

        for cl in clients:
            if cl.ip and cl.ip != ll.user:
                continue
            if cl.action and cl.action != ll.action:
                continue

            message = '%s %s' % (ll.action, ll.url)
            cl.write_message(message)

    def on_close(self):
        try:
            clients.remove(self)
        except ValueError:
            pass

到目前为止,我遇到的例子都围绕着基于Tornado的服务器和基于js的客户端。

然而,我需要的是从Python客户端连接到此websocket的简单方法,最好由Tornado提供支持。客户端不需要接收消息 - 只发送消息。我以为我的回答是这个SO帖子,

How to run functions outside websocket loop in python (tornado)

...但是我需要在发生日志事件时发送消息,最好是从我的代码解析事件。到目前为止,我遇到的例子都围绕着基于Tornado的服务器和基于js的客户端。有短暂的&基于甜龙卷风的客户端,只发送可以从for-loop调用的消息?

3 个答案:

答案 0 :(得分:2)

tornad-websocket-client个项目。注意它。
还有简单的websocket-client来发送消息。

答案 1 :(得分:2)

此外,我开发了一个完整的Tornado WebSocket客户端/服务器示例。

https://github.com/ilkerkesen/tornado-websocket-client-example

如果您需要WebSocket身份验证/授权,请查看我的其他项目trebolsugar

答案 2 :(得分:1)