diff --git a/Readme.md b/Readme.md index cae4c31..f792539 100644 --- a/Readme.md +++ b/Readme.md @@ -6,7 +6,11 @@ and their imdb rating when use chats with the server. ### How To Use It -Just run `make runserver` and it will start running the server on http://localhost:8888 +```sh +mkvirtualenv chat -p $(which pythpn3) +pip install -r requirements.txt +python server.py +``` ### Contact diff --git a/handlers/buffer.py b/handlers/buffer.py index 9a29d94..a11c897 100644 --- a/handlers/buffer.py +++ b/handlers/buffer.py @@ -6,7 +6,7 @@ class MessageBuffer(object): def __init__(self): self.waiters = set() self.cache = [] - self.cache_size = 200 + self.cache_size = 100000 def wait_for_messages(self, cursor=None): result_future = Future() diff --git a/handlers/mainhandler.py b/handlers/mainhandler.py index 4a8d3e1..c3fe484 100644 --- a/handlers/mainhandler.py +++ b/handlers/mainhandler.py @@ -1,5 +1,5 @@ import tornado.web -from buffer import MessageBuffer +from .buffer import MessageBuffer global_message_buffer = MessageBuffer() diff --git a/handlers/newmessage.py b/handlers/newmessage.py index 2c707bc..a9d4099 100644 --- a/handlers/newmessage.py +++ b/handlers/newmessage.py @@ -1,7 +1,7 @@ import tornado.web import uuid import json -from buffer import MessageBuffer +from .buffer import MessageBuffer global_message_buffer = MessageBuffer() diff --git a/handlers/routes.py b/handlers/routes.py index 6e20b70..7926c5a 100644 --- a/handlers/routes.py +++ b/handlers/routes.py @@ -1,9 +1,10 @@ from handlers.mainhandler import MainHandler from handlers.newmessage import MessageNewHandler -from handlers.updatemessage import MessageUpdatesHandler +from handlers.updatemessage import MessageUpdatesHandler, EchoWebSocket route = [ (r"/", MainHandler), (r"/a/message/new", MessageNewHandler), + (r"/websocket", EchoWebSocket), (r"/a/message/updates", MessageUpdatesHandler), ] diff --git a/handlers/updatemessage.py b/handlers/updatemessage.py index 34a02a9..c717eef 100644 --- a/handlers/updatemessage.py +++ b/handlers/updatemessage.py @@ -1,7 +1,7 @@ import tornado.web -from buffer import MessageBuffer +from .buffer import MessageBuffer from tornado import gen - +from tornado.websocket import WebSocketHandler global_message_buffer = MessageBuffer() @@ -19,3 +19,14 @@ def post(self): def on_connection_close(self): global_message_buffer.cancel_wait(self.future) + + +class EchoWebSocket(tornado.websocket.WebSocketHandler): + def open(self): + print("WebSocket opened") + + def on_message(self, message): + self.write_message(u"You said: " + message) + + def on_close(self): + print("WebSocket closed") diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c2177e8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +tornado==4.5.3 diff --git a/serve.py b/serve.py index c0c2b5c..5c721bd 100644 --- a/serve.py +++ b/serve.py @@ -25,6 +25,7 @@ def main(): xsrf_cookies=False, debug=options.debug, ) + print("Server running at http://localhost:8888") app.listen(options.port) tornado.ioloop.IOLoop.current().start()