lightspeed/transport/wisp_websocket
Wisp-style WebSocket adapter for Lightspeed session transport.
Types
Adapter state containing one bound session actor.
pub type AdapterState {
AdapterState(
session: session.Session,
owner: String,
csrf_token: String,
)
}
Constructors
-
AdapterState( session: session.Session, owner: String, csrf_token: String, )
Connect result for WebSocket upgrade.
pub type ConnectResult {
Connected(state: AdapterState, outbound_frames: List(String))
Rejected(error: contract.AdapterError)
}
Constructors
-
Connected(state: AdapterState, outbound_frames: List(String)) -
Rejected(error: contract.AdapterError)
Receive result after processing one client frame.
pub type ReceiveResult {
ReceiveResult(
state: AdapterState,
outbound_frames: List(String),
)
}
Constructors
-
ReceiveResult(state: AdapterState, outbound_frames: List(String))
WebSocket connect request context.
pub type WebSocketRequest {
WebSocketRequest(
route: String,
csrf_token: String,
origin: String,
now_ms: Int,
)
}
Constructors
-
WebSocketRequest( route: String, csrf_token: String, origin: String, now_ms: Int, )
Values
pub fn connect(
session_state: session.Session,
request: WebSocketRequest,
auth_hook: contract.AuthHook,
) -> ConnectResult
Authenticate and mount a WebSocket session.
pub fn connect_with_hooks(
session_state: session.Session,
request: WebSocketRequest,
auth_hook: contract.AuthHook,
protection_hook: contract.ProtectionHook,
) -> ConnectResult
Authenticate, enforce protection hooks, and mount a WebSocket session.
pub fn receive(
state: AdapterState,
payload: String,
now_ms: Int,
) -> ReceiveResult
Receive one client frame payload and return outbound server frames.
pub fn receive_with_hooks(
state: AdapterState,
payload: String,
now_ms: Int,
rate_limit_hook: contract.RateLimitHook,
) -> ReceiveResult
Receive one client frame payload with a rate-limit hook.
pub fn reconnect(
state: AdapterState,
request: WebSocketRequest,
auth_hook: contract.AuthHook,
) -> ConnectResult
Authenticate and reconnect a WebSocket session.
pub fn reconnect_with_hooks(
state: AdapterState,
request: WebSocketRequest,
auth_hook: contract.AuthHook,
protection_hook: contract.ProtectionHook,
) -> ConnectResult
Authenticate, enforce protection hooks, and reconnect a WebSocket session.