WebSocket API

传递给 WebsocketProviderWebsocketServer.serve 的 WebSocket 对象必须实现以下 API,该 API 定义为 协议类

class WebSocket:

    @property
    def path(self) -> str:
        # 可以是例如 URL 路径
        # 或房间标识符
        return "my-roomname"

    def __aiter__(self):
        return self

    async def __anext__(self) -> bytes:
        # 用于接收消息的异步迭代器
        # 直到连接关闭
        try:
            message = await self.recv()
        except Exception:
            raise StopAsyncIteration()

        return message

    async def send(self, message: bytes):
        # 发送消息
        pass

    async def recv(self) -> bytes:
        # 接收消息
        return b""

The WebSocket object passed to WebsocketProvider and WebsocketServer.serve must implement the following API, defined as a protocol class:

class WebSocket:

    @property
    def path(self) -> str:
        # can be e.g. the URL path
        # or a room identifier
        return "my-roomname"

    def __aiter__(self):
        return self

    async def __anext__(self) -> bytes:
        # async iterator for receiving messages
        # until the connection is closed
        try:
            message = await self.recv()
        except Exception:
            raise StopAsyncIteration()

        return message

    async def send(self, message: bytes):
        # send message
        pass

    async def recv(self) -> bytes:
        # receive message
        return b""