龙卷风,定期发送消息

时间:2013-08-06 05:43:21

标签: python tornado

我有一个简单的龙卷风服务器。

class MyWebSocket(tornado.websocket.WebSocketHandler):
    def on_message(self, message):
        self.write_message(message)

if __name__ == 'main':
    application = tornado.web.Application([
        (r"/", MyWebSocket),
    ])
    application.listen(3333)
    tornado.ioloop.IOLoop.instance().start()

我想有一个定时事件,每隔10秒左右就会向连接的客户端发送一条消息。有没有办法让定时事件这样做?

3 个答案:

答案 0 :(得分:2)

你看过Tornado的PeriodicCallback吗?允许您安排以给定间隔调用的函数。

请参阅Tornado docs

答案 1 :(得分:0)

我会在IOloop上使用add_timeout方法每十秒创建一次回调。以下示例。

class MyWebSocket(tornado.websocket.WebSocketHandler):
    def on_message(self, message):
        self.write_message(message)
        self.send_and_schedule_next(message)

    def send_and_schedule_next(self, message):
        self.write_message(message)
        tornado.ioloop.IOLoop.instance().add_timeout(
            time.time() + 10, 
            self.send_and_schedule_next(message)
        )

答案 2 :(得分:0)

此答案有PeriodicCallbackwebsockets的简单示例。

WebSocket Server sending messages periodically in python