Skip to content

WebSocketServerActor

[Source]

Trait for actors that serve WebSocket connections.

Extends TCPConnectionActor (for lori ASIO plumbing) and WebSocketLifecycleEventReceiver (for WebSocket-level callbacks). The actor stores a WebSocketServer as a field and implements _websocket() to return it. All other required methods have default implementations that delegate to the protocol.

Minimal implementation:

actor MyHandler is WebSocketServerActor
  var _ws: WebSocketServer = WebSocketServer.none()

  new create(auth: lori.TCPServerAuth, fd: U32,
    config: WebSocketConfig)
  =>
    _ws = WebSocketServer(auth, fd, this, config)

  fun ref _websocket(): WebSocketServer => _ws

  fun ref on_text_message(data: String val) =>
    _ws.send_text(data)  // echo back
trait tag WebSocketServerActor is
  TCPConnectionActor tag,
  WebSocketLifecycleEventReceiver ref

Implements


Public Behaviours

dispose

be dispose()

Public Functions

on_upgrade_request

[Source]

fun ref on_upgrade_request(
  request: UpgradeRequest val)
: Bool val

Parameters

Returns


on_open

[Source]

fun ref on_open(
  request: UpgradeRequest val)
: None val

Parameters

Returns


on_text_message

[Source]

fun ref on_text_message(
  data: String val)
: None val

Parameters

Returns


on_binary_message

[Source]

fun ref on_binary_message(
  data: Array[U8 val] val)
: None val

Parameters

Returns


on_closed

[Source]

fun ref on_closed(
  close_status: (CloseNormal val | CloseGoingAway val | CloseProtocolError val | 
    CloseUnsupportedData val | CloseInvalidPayload val | ClosePolicyViolation val | 
    CloseMessageTooBig val | CloseInternalError val | CloseNoStatusReceived val | 
    CloseAbnormalClosure val | OtherCloseCode val),
  close_reason: String val)
: None val

Parameters

Returns


on_throttled

[Source]

fun ref on_throttled()
: None val

Returns


on_unthrottled

[Source]

fun ref on_unthrottled()
: None val

Returns