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

Python websocket client - sending messages from python code to WebSocketServer

我需要将系统日志发送到浏览器,所以我有一个基于 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 提供支持。客户端不需要接收消息——只发送它们。我想我已经有了答案所以 post,

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

...但是我需要在日志事件发生时发送一条消息,最好是从我解析事件的代码中发送消息。到目前为止,我遇到的示例围绕着基于 Tornado 的服务器和基于 js 的客户端。是否有一个基于龙卷风的简短而甜蜜的客户端,它只发送可以从 for 循环调用的消息?

tornad-websocket-client个项目。关注一下。
还有简单的 websocket-client 来发送消息。

Tornado 包含一个 websocket 客户端:http://www.tornadoweb.org/en/stable/websocket.html#client-side-support

此外,我开发了一个完整的 Tornado WebSocket Client/Server 示例。

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

如果你想要WebSocketAuthentication/Authorization,看看我的其他项目trebol and sugar