Python Websocket客户端-将消息从python代码发送到WebSocketServer - python

我需要将系统日志发送到浏览器,所以我有一个像这样运行的基于龙卷风的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客户端(最好由Tornado驱动)连接到此websocket的简便方法。客户端不需要接收消息-只需发送它们。我以为这样的帖子我有答案,

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

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

python大神给出的解决方案

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

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

如果要WebSocket身份验证/授权,请查看我的其他项目trebol和sugar。