私は竜巻を使用して、ウェブページをリクエストしているすべての接続されたクライアントにライブデータを表示する必要があります。メインコードの他に竜巻ウェブサーバ
は、私は、次の作業のコードを使用します。
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."
このコード作品を、私は竜巻のオープンデフでメインループを入れています。したがって、1台のコンピュータが接続されていると、そのループにとどまり1秒ごとにデータが更新されます。 これを行うにはどうすればよいでしょうか?メインループはどこに置く必要がありますか?
私は良い方法でそれを置くので、すべての同じlivedataと同じWebページに複数のコンピュータを接続することが可能でなければならないので。
おかげ
ああ、ほとんど忘れてしまった:接続されたすべてのクライアントに同じデータを見せたいなら、あなたは 'WSHandler'の中でクラス変数を使うことができます。 – fweidemann14