龙卷风在事件上发送消息

时间:2016-11-17 11:52:03

标签: python websocket tornado

我在Python中创建一个程序,它读取未知间隔的数据流。该程序还通过websockets发送此数据。 该程序是服务器,它将收到的数据发送给客户端。

这是服务器的代码:

SecurityContext

但我希望能够在此循环中使用class WebSocketHandler(tornado.websocket.WebSocketHandler): def initialize(self): print 'Websocket opened' def open(self): print 'New connection' self.write_message('Test from server') def on_close(self): print 'Connection closed' def test(self): self.write_message("scheduled!") def make_app(): return tornado.web.Application([ (r'/ws', WebSocketHandler), ]) if __name__ == '__main__': application = make_app() http_server = tornado.httpserver.HTTPServer(application) http_server.listen(8888) tornado.ioloop.IOLoop.instance().start()

write_message

我该怎么做?

编辑:使用连接的两个线程都会出现问题吗?看起来它适用于1个连接。

def read_function():
    while True:
        time.sleep(10) # a while loop to simulate the reading
        print 'read serial'
        str = 'string to send'
        # send message here to the clients

1 个答案:

答案 0 :(得分:1)

在WebsocketHandler外部使用connections = set(),并在打开与connections.add(self)的连接时添加每个客户端。不要忘记在结束时使用connections.remove(self)删除它们。

现在,您可以通过以下方式访问websocket线程中的write_message[client.write_message('#your_message') for client in connections]