aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/webui/websocket.py
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@outlook.com>2016-10-30 16:07:10 +0800
committerAaron LI <aaronly.me@outlook.com>2016-10-30 16:07:10 +0800
commit90b877a2c785bb7691249d31e23138e0385001ae (patch)
tree7e775e4009d97ce611bc4a8f4c83f6ea2694ae13 /fg21sim/webui/websocket.py
parent9d7c7bb53244d2f79173b0f7fe1c6e91a656a240 (diff)
downloadfg21sim-90b877a2c785bb7691249d31e23138e0385001ae.tar.bz2
webui: Build the Web UI using Tornado with WebSocket
Tornado: http://www.tornadoweb.org/
Diffstat (limited to 'fg21sim/webui/websocket.py')
-rw-r--r--fg21sim/webui/websocket.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/fg21sim/webui/websocket.py b/fg21sim/webui/websocket.py
new file mode 100644
index 0000000..ab846df
--- /dev/null
+++ b/fg21sim/webui/websocket.py
@@ -0,0 +1,27 @@
+# Copyright (c) 2016 Weitian LI <liweitianux@live.com>
+# MIT license
+
+"""
+Communicate with the "fg21sim" simulation program through the Web UI using
+the WebSocket_ technique, which provides full-duplex communication channels
+over a single TCP connection.
+
+.. _WebSocket: https://en.wikipedia.org/wiki/WebSocket ,
+ http://caniuse.com/#feat=websockets
+"""
+
+import tornado.websocket
+
+
+class EchoWSHandler(tornado.websocket.WebSocketHandler):
+ def open(self):
+ print("WebSocket opened")
+
+ def on_message(self, message):
+ print("Message received: %s" % message)
+ msg_back = message[::-1]
+ print("Message sent back: %s" % msg_back)
+ self.write_message(msg_back)
+
+ def on_close(self):
+ print("WebSocket closed")