From 1525c33ba5fceeb5558b98c9f6e197d28aaa8770 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 23 Sep 2014 18:39:29 -0400 Subject: stub out websockets code for the web viewer --- termcast_server/__init__.py | 10 ++++++++++ termcast_server/index.html | 21 +++++++++++++++++++++ termcast_server/web.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 termcast_server/index.html create mode 100644 termcast_server/web.py (limited to 'termcast_server') diff --git a/termcast_server/__init__.py b/termcast_server/__init__.py index 6896b04..98cf7d9 100644 --- a/termcast_server/__init__.py +++ b/termcast_server/__init__.py @@ -7,6 +7,7 @@ import uuid from . import pubsub from . import ssh from . import termcast +from . import web class Server(object): def __init__(self, keyfile): @@ -16,6 +17,7 @@ class Server(object): def listen(self): ssh_sock = self._open_socket(2200) termcast_sock = self._open_socket(2201) + web_sock = self._open_socket(2202) threading.Thread( target=lambda: self.wait_for_ssh_connection(ssh_sock) @@ -23,6 +25,9 @@ class Server(object): threading.Thread( target=lambda: self.wait_for_termcast_connection(termcast_sock) ).start() + threading.Thread( + target=lambda: self.wait_for_web_connection(web_sock) + ).start() def wait_for_ssh_connection(self, sock): self._wait_for_connection( @@ -36,6 +41,11 @@ class Server(object): lambda client: self.handle_termcast_connection(client) ) + def wait_for_web_connection(self, sock): + sock.setblocking(0) + sock.listen(100) + web.start_server(sock) + def handle_ssh_connection(self, client): self._handle_connection( client, diff --git a/termcast_server/index.html b/termcast_server/index.html new file mode 100644 index 0000000..e7cd8dd --- /dev/null +++ b/termcast_server/index.html @@ -0,0 +1,21 @@ + + + + + + +

Hello World

+ + diff --git a/termcast_server/web.py b/termcast_server/web.py new file mode 100644 index 0000000..6b45632 --- /dev/null +++ b/termcast_server/web.py @@ -0,0 +1,34 @@ +from pkg_resources import resource_string +import tornado +import tornado.httpserver +import tornado.ioloop +import tornado.web +import tornado.websocket + +class RootHandler(tornado.web.RequestHandler): + def get(self): + self.write(resource_string(__name__, "index.html")) + +class WebSocketHandler(tornado.websocket.WebSocketHandler): + def open(self): + # XXX + pass + + def on_message(self, message): + # XXX + pass + + def close(self): + # XXX + pass + +def make_app(): + return tornado.web.Application([ + ('/', RootHandler), + ('/-/', WebSocketHandler), + ]) + +def start_server(sock): + server = tornado.httpserver.HTTPServer(make_app()) + server.add_socket(sock) + tornado.ioloop.IOLoop.instance().start() -- cgit v1.2.3