aboutsummaryrefslogtreecommitdiffstats
path: root/termcast_server/web.py
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-06 15:49:58 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-06 15:49:58 -0400
commitadbfe49125bd21c25551e3d3dfd5c7bd311ca82f (patch)
tree790a69750fb1bed710223dfe81ea62604bf9e647 /termcast_server/web.py
parent3c51db7d3a67d65aa3585780d395377310401bfe (diff)
downloadpython-termcast-server-adbfe49125bd21c25551e3d3dfd5c7bd311ca82f.tar.gz
python-termcast-server-adbfe49125bd21c25551e3d3dfd5c7bd311ca82f.zip
try to send updates rather than the full screen on every frame
this is not a very intelligent method at the moment, but it should (probably?) be an improvement over the current method. it probably fails pretty miserably on scrolling though - need to figure out a better idea for that.
Diffstat (limited to 'termcast_server/web.py')
-rw-r--r--termcast_server/web.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/termcast_server/web.py b/termcast_server/web.py
index 8b9f9e3..1c64fd4 100644
--- a/termcast_server/web.py
+++ b/termcast_server/web.py
@@ -34,14 +34,21 @@ class WebSocketHandler(tornado.websocket.WebSocketHandler):
def on_finish(self):
self.publisher.unsubscribe(self)
- def msg_new_data(self, connection_id, prev_buf, data, screen):
+ def msg_new_data(self, connection_id, prev_buf, data, screen, updates):
if self.watching_id != connection_id:
return
- reply = {
- "type": "update_screen",
- "screen": screen,
- }
+ if updates:
+ reply = {
+ "type": "update_screen",
+ "updates": updates,
+ }
+ else:
+ reply = {
+ "type": "redraw_screen",
+ "screen": screen,
+ }
+
try:
self.write_message(json.dumps(reply))
except: