Warning: Bocadillo is now UNMAINTAINED. Users are recommended to migrate to a supported alternative, such as Starlette or FastAPI. Please see #344 for more information.
bocadillo.websockets
WebSocket
WebSocket(self, scope:dict, receive:Callable[[], Awaitable[MutableMapping[str, Any]]], send:Callable[[MutableMapping[str, Any]], NoneType], auto_accept:bool=True, value_type:str=None, receive_type:str=None, send_type:str=None, caught_close_codes:Tuple[int, ...]=None)
Represents a WebSocket connection.
See also WebSockets.
Parameters
- scope (dict): ASGI scope.
- receive (callable): ASGI receive function.
- send (callable): ASGI send function.
- auto_accept (bool):
whether to automatically accept the WebSocket connection request.
Defaults to
True
. IfFalse
is passed, the connection must be accepted via.accept()
or anasync with
block. Useful to perform conditionally.reject()
a connection request or perform advanced error handling. - value_type (str):
The type of messages received or sent over the WebSocket.
If given, overrides
receive_type
andsend_type
. Defaults toNone
. - receive_type (str):
The type of messages received over the WebSocket.
Defaults to
"text"
. - send_type (str):
The type of messages send over the WebSocket.
Defaults to
"text"
. - caught_close_codes (tuple of int):
Close codes of
WebSocketDisconnect
exceptions that should be caught and silenced. Defaults to(1000, 1001)
.
Attributes
url (str-like)
: the URL which the WebSocket connection was made to.headers (dict)
: headers attached to the connection request.query_params (dict)
: parsed query parameters.
accept
WebSocket.accept(self, subprotocol:str=None) -> None
Accept the connection request.
Parameters
- subprotocol (str): a specific WebSocket subprotocol that should be expected from clients. Defaults to
None
.
reject
WebSocket.reject(self)
Reject the connection request.
This is equivalent to .close(403)
.
Calling this before .accept()
has undefined behavior.
close
WebSocket.close(self, code:int=1000) -> None
Close the WebSocket connection.
Parameters
- code (int): a close code, defaults to
1000
(Normal Closure).
See Also
ensure_closed
WebSocket.ensure_closed(self, code:int=1000)
Close the connection if it has not been closed already.
receive_text
WebSocket.receive_text(self) -> str
Receive a message as text.
send_text
WebSocket.send_text(self, data:str)
Send a message as text.
receive_bytes
WebSocket.receive_bytes(self) -> bytes
Receive a message a bytes.
send_bytes
WebSocket.send_bytes(self, data:bytes)
Send a message as bytes.
receive_json
WebSocket.receive_json(self) -> Union[dict, list]
Receive a message as text and parse it to a JSON object.
Raises
json.JSONDecodeError
: if the received JSON is invalid.
send_json
WebSocket.send_json(self, data:Union[dict, list])
Serialize an object to JSON and send it as text.
Raises
TypeError
: if the givendata
is not JSON serializable.
receive_event
WebSocket.receive_event(self) -> MutableMapping[str, Any]
Receive a raw ASGI event.
send_event
WebSocket.send_event(self, event:MutableMapping[str, Any])
Send a raw ASGI event.
receive
WebSocket.receive(self) -> Union[str, bytes, list, dict]
Receive a message from the WebSocket.
Shortcut for receive_<self.receive_type>
.
send
WebSocket.send(self, message:Any)
Send a message over the WebSocket.
Shortcut for send_<self.send_type>
.
← views.py