diff --git a/run_log_watch.py b/run_log_watch.py new file mode 100644 index 000000000..bdfdd1894 --- /dev/null +++ b/run_log_watch.py @@ -0,0 +1,67 @@ +# coding: utf-8 + +import time +import json +import os.path + +import tornado.ioloop +import tornado.options +import tornado.web +import tornado.websocket +import tornado.httpserver + +from tornado.options import define, options + +define("port", default=8080, help="run on the given port", type=int) + + +class Application(tornado.web.Application): + def __init__(self): + handlers = [ + (r'/', MainHandler), + (r'/send', SendHandler), + ] + + setting = { + 'cookie_secret': 'DFksdfsasdfkasdfFKwlwfsdfsa1204mx', + 'template_path': os.path.join(os.path.dirname(__file__), 'templates'), + 'static_path': os.path.join(os.path.dirname(__file__), 'static'), + } + + tornado.web.Application.__init__(self, handlers, **setting) + + +class SendHandler(tornado.websocket.WebSocketHandler): + clients = set() + + def open(self): + SendHandler.clients.add(self) + self.write_message(json.dumps({'input': 'connected...'})) + self.stream.set_nodelay(True) + + def on_message(self, message): + message = json.loads(message) + self.write_message(json.dumps({'input': 'response...'})) + while True: + self.write_message(json.dumps(message)) + time.sleep(1) + # # 服务器主动关闭 + # self.close() + # SendHandler.clients.remove(self) + + def on_close(self): + # 客户端主动关闭 + SendHandler.clients.remove(self) + + +class MainHandler(tornado.web.RequestHandler): + def get(self): + self.render('log_watch.html') + + +if __name__ == '__main__': + tornado.options.parse_command_line() + app = Application() + server = tornado.httpserver.HTTPServer(app) + server.listen(options.port) + tornado.ioloop.IOLoop.instance().start() diff --git a/templates/log_watch.html b/templates/log_watch.html new file mode 100644 index 000000000..93add123b --- /dev/null +++ b/templates/log_watch.html @@ -0,0 +1,104 @@ + +
+ + + + + + + +