MCPcopy Create free account
hub / github.com/encode/starlette / receive

Method receive

starlette/websockets.py:41–63  ·  view source on GitHub ↗

Receive ASGI websocket messages, ensuring valid state transitions.

(self)

Source from the content-addressed store, hash-verified

39 self.application_state = WebSocketState.CONNECTING
40
41 async def receive(self) -> Message:
42 """
43 Receive ASGI websocket messages, ensuring valid state transitions.
44 """
45 if self.client_state == WebSocketState.CONNECTING:
46 message = await self._receive()
47 message_type = message["type"]
48 if message_type != "websocket.connect":
49 raise RuntimeError(f'Expected ASGI message "websocket.connect", but got {message_type!r}')
50 self.client_state = WebSocketState.CONNECTED
51 return message
52 elif self.client_state == WebSocketState.CONNECTED:
53 message = await self._receive()
54 message_type = message["type"]
55 if message_type not in {"websocket.receive", "websocket.disconnect"}:
56 raise RuntimeError(
57 f'Expected ASGI message "websocket.receive" or "websocket.disconnect", but got {message_type!r}'
58 )
59 if message_type == "websocket.disconnect":
60 self.client_state = WebSocketState.DISCONNECTED
61 return message
62 else:
63 raise WebSocketDisconnected('Cannot call "receive" once a disconnect message has been received.')
64
65 async def send(self, message: Message) -> None:
66 """

Callers 6

acceptMethod · 0.95
receive_textMethod · 0.95
receive_bytesMethod · 0.95
receive_jsonMethod · 0.95
dispatchMethod · 0.95
appFunction · 0.95

Calls 1

Tested by 1

appFunction · 0.76