code: async def send(self, message: Message) -> None:
          
          if self.application_state == WebSocketState.CONNECTING:
              message_type = message["type"]
              assert message_type in {"websocket.accept", "websocket.close"}
              if message_type == "websocket.close":
                  self.application_state = WebSocketState.DISCONNECTED
              else:
                  self.application_state = WebSocketState.CONNECTED
              await self._send(message)
          elif self.application_state == WebSocketState.CONNECTED:
              message_type = message["type"]
              assert message_type in {"websocket.send", "websocket.close"}
              if message_type == "websocket.close":
                  self.application_state = WebSocketState.DISCONNECTED
              await self._send(message)
          else:
              raise RuntimeError('Cannot call "send" once a close message has been sent.')
docs: Send ASGI websocket messages, ensuring valid state transitions.