class WebSocketDeflateExtension : WebSocketExtension<Config>
Compress and decompress WebSocket frames to reduce amount of transferred bytes.
Usage
install(WebSockets) {
extensions {
install(WebSocketDeflateExtension)
}
}
Implements WebSocket deflate extension from RFC-7692. This implementation is using window size = 15 due to limitations of Deflater implementation.
companion object Companion : WebSocketExtensionFactory<Config, WebSocketDeflateExtension> |
|
class Config
WebSocket deflate extension configuration. |
val factory: WebSocketExtensionFactory<Config, out WebSocketExtension<Config>>
Reference to the WebSocketExtensionFactory, which produced this extension. |
|
val protocols: List<WebSocketExtensionHeader>
List of WebSocket extension protocols which will be sent by client in headers. They are required to inform server that client wants to negotiate current extension. |
fun clientNegotiation(negotiatedProtocols: List<WebSocketExtensionHeader>): Boolean
This method is called only for a client, when it receives the WebSocket upgrade response. |
|
fun processIncomingFrame(frame: Frame): Frame
This method is called on each incoming frame before handling it in WebSocket session. |
|
fun processOutgoingFrame(frame: Frame): Frame
This method is called on each outgoing frame and handle it before sending. |
|
fun serverNegotiation(requestedProtocols: List<WebSocketExtensionHeader>): List<WebSocketExtensionHeader>
This method is called only for a server, when it receives websocket session. |
val key: AttributeKey<WebSocketDeflateExtension>
Key is used to locate extension. |
|
val rsv1: Boolean
First extension bit used by current extension. |
|
val rsv2: Boolean
Second extension bit used by current extension. |
|
val rsv3: Boolean
Third extension bit used by current extension. |
fun install(config: Config.() -> Unit): WebSocketDeflateExtension
Create extension instance using config block. The extension instance is created for each WebSocket request. |