@@ -32,6 +32,20 @@ async def broadcast(self, message: str):
32
32
33
33
manager = ConnectionManager ()
34
34
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
+
35
49
"""
36
50
In websocket case we create a server per route.
37
51
If we create other routes we can create more servers
@@ -61,16 +75,3 @@ async def broadcast(self, message: str):
61
75
messages = [BookUpdatedV1 ],
62
76
operation_name = "ReceiveMessage" ,
63
77
)
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