WebSocketServerActor¶
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
Implements¶
Public Behaviours¶
dispose¶
Public Functions¶
on_upgrade_request¶
Parameters¶
- request: UpgradeRequest val
Returns¶
- Bool val
on_open¶
Parameters¶
- request: UpgradeRequest val
Returns¶
- None val
on_text_message¶
Parameters¶
- data: String val
Returns¶
- None val
on_binary_message¶
Parameters¶
Returns¶
- None val
on_closed¶
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¶
- 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
Returns¶
- None val
on_throttled¶
Returns¶
- None val
on_unthrottled¶
Returns¶
- None val