我使用龍捲風來製作一個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