MCPcopy
hub / github.com/encode/starlette / dispatch

Method dispatch

starlette/endpoints.py:70–89  ·  starlette/endpoints.py::WebSocketEndpoint.dispatch
(self)

Source from the content-addressed store, hash-verified

68 return self.dispatch().__await__()
69
70 async def dispatch(self) -> None:
71 websocket = WebSocket(self.scope, receive=self.receive, send=self.send)
72 await self.on_connect(websocket)
73
74 close_code = status.WS_1000_NORMAL_CLOSURE
75
76 try:
77 while True:
78 message = await websocket.receive()
79 if message[class="st">"type"] == class="st">"websocket.receive":
80 data = await self.decode(websocket, message)
81 await self.on_receive(websocket, data)
82 elif message[class="st">"type"] == class="st">"websocket.disconnect": class="cm"># pragma: no branch
83 close_code = int(message.get(class="st">"code") or status.WS_1000_NORMAL_CLOSURE)
84 break
85 except Exception as exc:
86 close_code = status.WS_1011_INTERNAL_ERROR
87 raise exc
88 finally:
89 await self.on_disconnect(websocket, close_code)
90
91 async def decode(self, websocket: WebSocket, message: Message) -> Any:
92 if self.encoding == class="st">"text":

Callers 1

__await__Method · 0.95

Calls 7

on_connectMethod · 0.95
receiveMethod · 0.95
decodeMethod · 0.95
on_receiveMethod · 0.95
on_disconnectMethod · 0.95
WebSocketClass · 0.90
getMethod · 0.45

Tested by

no test coverage detected