NAME
PAGI::Middleware::WebSocket::Compression - WebSocket per-message compression
SYNOPSIS
use PAGI::Middleware::Builder;
my $app = builder {
enable 'WebSocket::Compression',
level => 6,
min_size => 128;
$my_app;
};
DESCRIPTION
PAGI::Middleware::WebSocket::Compression implements per-message deflate compression (RFC 7692) for WebSocket connections. It negotiates the permessage-deflate extension and transparently compresses/decompresses messages.
CONFIGURATION
level (default: 6)
Compression level (1-9). Higher = better compression, slower.
min_size (default: 128)
Minimum message size to compress. Messages smaller than this are sent uncompressed.
server_no_context_takeover (default: 0)
If true, don't use context takeover for server-to-client messages.
client_no_context_takeover (default: 0)
If true, request client to not use context takeover.
REQUIREMENTS
This middleware requires Compress::Raw::Zlib for compression. If the module is not available, compression is disabled and messages pass through uncompressed.
EXTENSION NEGOTIATION
The middleware checks for the permessage-deflate extension in the client's Sec-WebSocket-Extensions header. If present and zlib is available, compression is enabled.
The server responds with the negotiated extension parameters in the websocket.accept event's extensions field.
SCOPE EXTENSIONS
pagi.websocket.compression
Hashref containing
level,min_size, andavailableflags.
SEE ALSO
PAGI::Middleware - Base class for middleware
PAGI::Middleware::WebSocket::Heartbeat - WebSocket keepalive
RFC 7692 - Compression Extensions for WebSocket