server sends and receives messages; supports new users joining and chatting
commit
04735eefa2
@ -0,0 +1 @@
|
||||
websockets
|
@ -0,0 +1,28 @@
|
||||
import asyncio
|
||||
import json
|
||||
import websockets
|
||||
|
||||
connected = []
|
||||
IDs = {}
|
||||
|
||||
async def handler(websocket):
|
||||
await websocket.send(json.dumps({"type": "test", "message": "test packet from server"}))
|
||||
async for original in websocket:
|
||||
packet = json.loads(original)
|
||||
print(packet)
|
||||
if packet["type"] == "user_joined":
|
||||
IDs[websocket] = packet["name"]
|
||||
connected.append(websocket)
|
||||
|
||||
websockets.broadcast(connected, json.dumps({"type": "server_message", "message": IDs[websocket] + " joined"}))
|
||||
elif packet["type"] == "shout" or packet['type'] == "server_message":
|
||||
websockets.broadcast(connected, json.dumps({"type": "shout", "name": IDs[websocket], "message": packet["message"]}))
|
||||
|
||||
|
||||
async def main():
|
||||
async with websockets.serve(handler, "", 8080):
|
||||
await asyncio.Future() # run forever
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
Loading…
Reference in New Issue