Tôi đang cố gắng kết hợp với nhau một thử nghiệm cho phép các máy khách web kết nối với máy chủ Tornado và tôi muốn máy chủ Tornado gửi thông báo tới tất cả các máy khách mỗi X giây.python Tornado websockets cách gửi tin nhắn mỗi X giây?
Lý do tôi làm điều này là do các kết nối ổ cắm đang được thả âm thầm ở đâu đó và tôi tự hỏi về các "ping" định kỳ được gửi bởi máy chủ websockets sẽ duy trì kết nối.
Tôi e rằng đó là một câu hỏi khá ngớ ngẩn và đoạn mã dưới đây là một mớ hỗn độn. Tôi chỉ không có đầu quấn quanh Tornado và đủ rộng để làm cho nó hoạt động.
import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web
import tornado.gen
import time
from tornado import gen
class WSHandler(tornado.websocket.WebSocketHandler):
def open(self):
print 'http://mailapp.crowdwave.com/girlthumb.jpg'
self.write_message("http://www.example.com/girlthumb.jpg")
def on_message(self, message):
print 'Incoming message:', message
self.write_message("http://www.example.com/girlthumb.jpg")
def on_close(self):
print 'Connection was closed...'
@gen.engine
def f():
yield gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 8)
self.write_message("http://www.example.com/x.png")
print 'x'
@gen.engine
def g():
yield gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 4)
self.write_message("http://www.example.com/y.jpg")
print 'y'
application = tornado.web.Application([
(r'/ws', WSHandler),
])
if __name__ == "__main__":
tornado.ioloop.IOLoop.instance().add_callback(f)
tornado.ioloop.IOLoop.instance().add_callback(g)
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()