hypercorn.protocol.ws_stream module¶
- class hypercorn.protocol.ws_stream.ASGIWebsocketState(value)¶
Bases:
enum.Enum
An enumeration.
- CLOSED = 4¶
- CONNECTED = 2¶
- HANDSHAKE = 1¶
- HTTPCLOSED = 5¶
- RESPONSE = 3¶
- exception hypercorn.protocol.ws_stream.FrameTooLargeError¶
Bases:
Exception
- class hypercorn.protocol.ws_stream.Handshake(headers: List[Tuple[bytes, bytes]], http_version: str)¶
Bases:
object
- accept(subprotocol: Optional[str], additional_headers: Iterable[Tuple[bytes, bytes]]) Tuple[int, List[Tuple[bytes, bytes]], wsproto.connection.Connection] ¶
- is_valid() bool ¶
- class hypercorn.protocol.ws_stream.WSStream(app: Union[Type[hypercorn.typing.ASGI2Protocol], Callable[[Union[hypercorn.typing.HTTPScope, hypercorn.typing.WebsocketScope, hypercorn.typing.LifespanScope], Callable[[], Awaitable[Union[hypercorn.typing.HTTPRequestEvent, hypercorn.typing.HTTPDisconnectEvent, hypercorn.typing.WebsocketConnectEvent, hypercorn.typing.WebsocketReceiveEvent, hypercorn.typing.WebsocketDisconnectEvent, hypercorn.typing.LifespanStartupEvent, hypercorn.typing.LifespanShutdownEvent]]], Callable[[Union[hypercorn.typing.HTTPResponseStartEvent, hypercorn.typing.HTTPResponseBodyEvent, hypercorn.typing.HTTPServerPushEvent, hypercorn.typing.HTTPDisconnectEvent, hypercorn.typing.WebsocketAcceptEvent, hypercorn.typing.WebsocketSendEvent, hypercorn.typing.WebsocketResponseStartEvent, hypercorn.typing.WebsocketResponseBodyEvent, hypercorn.typing.WebsocketCloseEvent, hypercorn.typing.LifespanStartupCompleteEvent, hypercorn.typing.LifespanStartupFailedEvent, hypercorn.typing.LifespanShutdownCompleteEvent, hypercorn.typing.LifespanShutdownFailedEvent]], Awaitable[None]]], Awaitable[None]]], config: hypercorn.config.Config, context: hypercorn.typing.WorkerContext, task_group: hypercorn.typing.TaskGroup, ssl: bool, client: Optional[Tuple[str, int]], server: Optional[Tuple[str, int]], send: Callable[[hypercorn.protocol.events.Event], Awaitable[None]], stream_id: int)¶
Bases:
object
- async app_send(message: Optional[Union[hypercorn.typing.HTTPResponseStartEvent, hypercorn.typing.HTTPResponseBodyEvent, hypercorn.typing.HTTPServerPushEvent, hypercorn.typing.HTTPDisconnectEvent, hypercorn.typing.WebsocketAcceptEvent, hypercorn.typing.WebsocketSendEvent, hypercorn.typing.WebsocketResponseStartEvent, hypercorn.typing.WebsocketResponseBodyEvent, hypercorn.typing.WebsocketCloseEvent, hypercorn.typing.LifespanStartupCompleteEvent, hypercorn.typing.LifespanStartupFailedEvent, hypercorn.typing.LifespanShutdownCompleteEvent, hypercorn.typing.LifespanShutdownFailedEvent]]) None ¶
- async handle(event: hypercorn.protocol.events.Event) None ¶
- property idle: bool¶