From 8cf1cb10d9fbe67c4bcf05284d41f3e905864b44 Mon Sep 17 00:00:00 2001 From: mirai Date: Fri, 2 Dec 2022 08:14:46 +0300 Subject: [PATCH] Updated server/server.py Added ws_talk.py --- server/server.py | 24 ++++++++++++++++-------- ws_talk.py | 0 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 ws_talk.py diff --git a/server/server.py b/server/server.py index d8324b2..b35c904 100644 --- a/server/server.py +++ b/server/server.py @@ -2,7 +2,7 @@ import rsa from server.models import Message from cryptography.fernet import Fernet from sanic.response import HTTPResponse -from sanic import Sanic, Request, response +from sanic import Sanic, Request, response, Websocket app = Sanic("app") app.config.OAS = False @@ -16,7 +16,8 @@ users: dict[str, str] = {} key = Fernet.generate_key() -@app.route('/talk', methods=["GET", "POST"]) +#@app.route('/talk', methods=["GET", "POST"]) +@app.websocket("/talk") async def talking(request: Request) -> HTTPResponse: new_message = Message( message=request.form.get("text") @@ -25,12 +26,19 @@ async def talking(request: Request) -> HTTPResponse: return response.json({"status": "ok"}) -@app.route('/update', methods=["GET", "POST"]) -async def talking(request: Request) -> HTTPResponse: - return response.json({ - "status": [i.message for i in actual_messages], - "users_in_chat": list(users.keys()) - }) +#@app.route('/update', methods=["GET", "POST"]) +@app.websocket("/update") +async def talking(request: Request, ws: Websocket) -> HTTPResponse: + while True: + await ws.send({ + "status": [i.message for i in actual_messages], + "users_in_chat": list(users.keys()) + }) + await asyncio.sleep(0.2) + # return response.json({ + # "status": [i.message for i in actual_messages], + # "users_in_chat": list(users.keys()) + # }) @app.route('/get_key', methods=['GET', 'POST']) diff --git a/ws_talk.py b/ws_talk.py new file mode 100644 index 0000000..e69de29