Package-level declarations

Types

Link copied to clipboard

Represents a server-side web socket session with all default implementations

Link copied to clipboard
class WebSockets : CoroutineScope

WebSockets support plugin. It is required to be installed first before binding any websocket endpoints

Link copied to clipboard

Represents a server-side web socket session

Link copied to clipboard
class WebSocketUpgrade(val call: ApplicationCall, val protocol: String? = null, installExtensions: Boolean = false, val handle: suspend WebSocketSession.() -> Unit) : OutgoingContent.ProtocolUpgrade

An OutgoingContent response object that could be used to respond(): it will cause application engine to perform HTTP upgrade and start websocket RAW session.

Properties

Link copied to clipboard

An application that started this web socket session

Link copied to clipboard

Converter for web socket session

Link copied to clipboard

Ping interval or null to disable pinger. Please note that pongs will be handled despite this setting.

Link copied to clipboard
Link copied to clipboard

A timeout to wait for pong reply to ping otherwise the session will be terminated immediately. It doesn't have any effect if pingInterval is null (pinger is disabled).

Functions

Link copied to clipboard

Dequeues a frame and deserializes it to the type T using WebSocket content converter. May throw an exception WebsocketDeserializeException if the converter can't deserialize frame data to type T. May throw WebsocketDeserializeException if the received frame type is not Frame.Text or Frame.Binary. In this case, WebsocketDeserializeException.frame contains the received frame. May throw ClosedReceiveChannelException if a channel was closed

Link copied to clipboard
inline suspend fun <T> WebSocketServerSession.sendSerialized(data: T)
suspend fun WebSocketServerSession.sendSerialized(data: Any?, typeInfo: TypeInfo)

Serializes data to a frame and enqueues this frame. May suspend if the outgoing queue is full. If the outgoing channel is already closed, throws an exception, so it is impossible to transfer any message. Frames sent after a Close frame are silently ignored. Note that a Close frame could be sent automatically in reply to a peer's Close frame unless it is a raw WebSocket session.

Link copied to clipboard
fun Route.webSocket(protocol: String? = null, handler: suspend DefaultWebSocketServerSession.() -> Unit)

Bind WebSocket at the current route optionally checking for the WebSocket protocol (ignored if null) Requires WebSockets plugin to be installed.

fun Route.webSocket(path: String, protocol: String? = null, handler: suspend DefaultWebSocketServerSession.() -> Unit)

Bind WebSocket at the current route + path optionally checking for the WebSocket protocol (ignored if null) Requires WebSockets plugin to be installed.

Link copied to clipboard
fun Route.webSocketRaw(protocol: String? = null, handler: suspend WebSocketServerSession.() -> Unit)
fun Route.webSocketRaw(protocol: String? = null, negotiateExtensions: Boolean = false, handler: suspend WebSocketServerSession.() -> Unit)

Bind RAW WebSocket at the current route optionally checking for the WebSocket protocol (ignored if null) Requires WebSockets plugin to be installed.

fun Route.webSocketRaw(path: String, protocol: String? = null, handler: suspend WebSocketServerSession.() -> Unit)

Binds RAW WebSocket at the current route + path optionally checking the for WebSocket protocol (ignored if null) Requires WebSockets plugin to be installed.

fun Route.webSocketRaw(path: String, protocol: String? = null, negotiateExtensions: Boolean = false, handler: suspend WebSocketServerSession.() -> Unit)

Bind RAW WebSocket at the current route + path optionally checking for the WebSocket protocol (ignored if null) Requires WebSockets plugin to be installed.

Link copied to clipboard
fun WebSockets(pingInterval: Duration?, timeout: Duration, maxFrameSize: Long, masking: Boolean): WebSockets

WebSockets support plugin. It is required to be installed first before binding any websocket endpoints

fun WebSockets(pingInterval: Duration?, timeout: Duration, maxFrameSize: Long, masking: Boolean): WebSockets