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

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.

pub fn session_state(state: AdapterState) -> session.Session

Access session state.

Search Document