我有一个简单的龙卷风服务器。
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秒左右就会向连接的客户端发送一条消息。有没有办法让定时事件这样做?
答案 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)
此答案有PeriodicCallback
和websockets
的简单示例。