2013-08-06 60 views
0

我有一個簡單的龍捲風服務器。龍捲風,發送短信定期

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秒鐘向連接的客戶端發送消息。有沒有辦法有一個定時事件做到這一點?

回答

2

你檢查出龍捲風的PeriodicCallback?允許您安排一個函數在給定的時間間隔被調用。

Tornado docs

0

我會使用IOloop上的add_timeout方法每隔10秒創建一個回調函數。下面的例子。

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) 
     )