(self)
| 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": |
no test coverage detected