Extensions

Per-Message Deflate

websockets.extensions.permessage_deflate implements the Compression Extensions for WebSocket as specified in RFC 7692.

class websockets.extensions.permessage_deflate.ClientPerMessageDeflateFactory(server_no_context_takeover=False, client_no_context_takeover=False, server_max_window_bits=None, client_max_window_bits=None, compress_settings=None)[source]

Client-side extension factory for the Per-Message Deflate extension.

Parameters behave as described in section 7.1 of RFC 7692. Set them to True to include them in the negotiation offer without a value or to an integer value to include them with this value.

Parameters
  • server_no_context_takeover (bool) – defaults to False

  • client_no_context_takeover (bool) – defaults to False

  • server_max_window_bits (Optional[int]) – optional, defaults to None

  • client_max_window_bits (Union[int, bool, None]) – optional, defaults to None

  • compress_settings (Optional[Dict[str, Any]]) – optional, keyword arguments for zlib.compressobj(), excluding wbits

class websockets.extensions.permessage_deflate.ServerPerMessageDeflateFactory(server_no_context_takeover=False, client_no_context_takeover=False, server_max_window_bits=None, client_max_window_bits=None, compress_settings=None)[source]

Server-side extension factory for the Per-Message Deflate extension.

Parameters behave as described in section 7.1 of RFC 7692. Set them to True to include them in the negotiation offer without a value or to an integer value to include them with this value.

Parameters
  • server_no_context_takeover (bool) – defaults to False

  • client_no_context_takeover (bool) – defaults to False

  • server_max_window_bits (Optional[int]) – optional, defaults to None

  • client_max_window_bits (Optional[int]) – optional, defaults to None

  • compress_settings (Optional[Dict[str, Any]]) – optional, keyword arguments for zlib.compressobj(), excluding wbits

Abstract classes

class websockets.extensions.Extension[source]

Abstract class for extensions.

decode(frame, *, max_size=None)[source]

Decode an incoming frame.

Parameters
  • frame (Frame) – incoming frame

  • max_size (Optional[int]) – maximum payload size in bytes

Return type

Frame

encode(frame)[source]

Encode an outgoing frame.

Parameters

frame (Frame) – outgoing frame

Return type

Frame

property name: ExtensionName

Extension identifier.

Return type

NewType()(ExtensionName, str)

class websockets.extensions.ClientExtensionFactory[source]

Abstract class for client-side extension factories.

get_request_params()[source]

Build request parameters.

Return a list of (name, value) pairs.

Return type

List[Tuple[str, Optional[str]]]

property name: ExtensionName

Extension identifier.

Return type

NewType()(ExtensionName, str)

process_response_params(params, accepted_extensions)[source]

Process response parameters received from the server.

Parameters
Raises

NegotiationError – if parameters aren’t acceptable

Return type

Extension

class websockets.extensions.ServerExtensionFactory[source]

Abstract class for server-side extension factories.

property name: ExtensionName

Extension identifier.

Return type

NewType()(ExtensionName, str)

process_request_params(params, accepted_extensions)[source]

Process request parameters received from the client.

To accept the offer, return a 2-uple containing:

  • response parameters: a list of (name, value) pairs

  • an extension: an instance of a subclass of Extension

Parameters
Raises

NegotiationError – to reject the offer, if parameters aren’t acceptable

Return type

Tuple[List[Tuple[str, Optional[str]]], Extension]