我使用龙卷风来制作一个websever,它必须向所有请求html页面的连接客户端显示实时数据。除了龙卷风web服务器的主要代码
我用下面的工作代码:
import datetime
import time
import tornado.ioloop
import tornado.web
import tornado.websocket
import tornado.httpserver
import sys
import os.path
import binascii
import struct
class MainHandler(tornado.web.RequestHandler):
def get(self):
print "[HTTP](MainHandler) User Connected."
self.render("stack_073.html")
class WSHandler(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def open(self):
while 1:
self.write_message(data)
print data
time.sleep(1)
if __name__ == "__main__":
try:
app = tornado.httpserver.HTTPServer(tornado.web.Application([
(r'/', MainHandler),
(r'/ws', WSHandler),
]))
app.listen(80)
main_loop = tornado.ioloop.IOLoop.current()
print "Tornado Server started"
main_loop.start()
except:
print "Exception triggered - Tornado Server stopped."
此代码的工作,但我已经把主循环在龙卷风的开放DEF。所以当一台计算机连接时,它将停留在该循环中并每秒更新一次数据。 但是,这样做的好方法是什么?我必须把我的主循环放在哪里?
因为如果我把它放在一个好的方式,它必须有可能连接多台计算机到同一个网页与所有相同livedata。
感谢
哦,差点忘了:如果你想让所有连接的客户端看到相同的数据,你可以在你的'WSHandler'中使用类变量。 – fweidemann14