@@ -32,6 +32,20 @@ async def broadcast(self, message: str):
3232
3333manager = ConnectionManager ()
3434
35+
36+ @router .websocket ("/{client_id}" )
37+ async def websocket_endpoint (websocket : WebSocket , client_id : int ):
38+ await manager .connect (websocket )
39+ try :
40+ while True :
41+ data = await websocket .receive_text ()
42+ await manager .send_personal_message (f"You wrote: { data } " , websocket )
43+ await manager .broadcast (f"Client #{ client_id } says: { data } " )
44+ except WebSocketDisconnect :
45+ manager .disconnect (websocket )
46+ await manager .broadcast (f"Client #{ client_id } left the chat" )
47+
48+
3549"""
3650In websocket case we create a server per route.
3751If we create other routes we can create more servers
@@ -61,16 +75,3 @@ async def broadcast(self, message: str):
6175 messages = [BookUpdatedV1 ],
6276 operation_name = "ReceiveMessage" ,
6377)
64-
65-
66- @router .websocket ("/{client_id}" )
67- async def websocket_endpoint (websocket : WebSocket , client_id : int ):
68- await manager .connect (websocket )
69- try :
70- while True :
71- data = await websocket .receive_text ()
72- await manager .send_personal_message (f"You wrote: { data } " , websocket )
73- await manager .broadcast (f"Client #{ client_id } says: { data } " )
74- except WebSocketDisconnect :
75- manager .disconnect (websocket )
76- await manager .broadcast (f"Client #{ client_id } left the chat" )
0 commit comments