diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-09-23 18:39:29 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-09-23 18:39:29 -0400 |
commit | 1525c33ba5fceeb5558b98c9f6e197d28aaa8770 (patch) | |
tree | 8929ab7f0e7782c4a15ec43da59fda224fd227c1 /termcast_server | |
parent | a9197023946c36a406405338adb36102c179a3da (diff) | |
download | python-termcast-server-1525c33ba5fceeb5558b98c9f6e197d28aaa8770.tar.gz python-termcast-server-1525c33ba5fceeb5558b98c9f6e197d28aaa8770.zip |
stub out websockets code for the web viewer
Diffstat (limited to 'termcast_server')
-rw-r--r-- | termcast_server/__init__.py | 10 | ||||
-rw-r--r-- | termcast_server/index.html | 21 | ||||
-rw-r--r-- | termcast_server/web.py | 34 |
3 files changed, 65 insertions, 0 deletions
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 @@ +<!DOCTYPE html> +<html> +<head> + <script> +var url = location.origin.replace(/^http/, 'ws') + "/-/"; +var socket = new WebSocket(url); +socket.onopen = function (e) { + // XXX +}; +socket.onmessage = function (e) { + // XXX +}; +socket.onclose = function (e) { + // XXX +}; + </script> +</head> +<body> + <h1>Hello World</h1> +</body> +</html> 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() |