1

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

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 秒左右向连接的客户端发送一条消息。有没有办法让定时事件做到这一点?

4

3 回答 3

2

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

请参阅Tornado 文档

于 2013-08-06T05:51:06.087 回答
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)
        )
于 2013-08-06T06:26:34.810 回答
0

这个答案有一个简单的例子PeriodicCallbackwith websockets

WebSocket Server在python中定期发送消息

于 2016-11-15T12:04:39.867 回答