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
class hypercorn.protocol.ws_stream.WebsocketBuffer(max_length: int)

Bases: object

clear() None
extend(event: wsproto.events.Message) None
to_message() dict