Websocket Endpoint
Websocket Endpoint is used to create and start Websocket receiving service, it can register different routes Router to handle different requests.
# Type
endpoint/ws
# Startup configuration
This component allows the reuse of shared connection clients through the server field. See Component Connection Reuse for reference.
| Field | Type | Required | Description | Default |
|---|---|---|---|---|
| server | string | Yes | ws service address, e.g. ":8080" | - |
| certFile | string | No | Cert file path | 0 |
| certKeyFile | string | No | CertKey file path | - |
| sessionKey | string | No | Session addressing key extraction rule (rulego ${} expression). E.g. ${msg.deviceId} extracts deviceId from first frame; empty uses RemoteAddr | - |
| sessionTTL | int | No | Session idle TTL (seconds); the connection is closed after idle timeout; <=0 uses default 1800 | 1800 |
# Session Addressing & Active Push
endpoint/ws has a built-in session registry maintaining a session for each connected WebSocket client. Combined with a ws node (server=ref://<this endpoint instance ID>), you can reuse a client's established WS connection to actively push messages to specific clients by sessionKey (e.g. deviceId), exact match.
The sessionKey config is the same as endpoint/net: a rulego ${} expression extracts the session key from the first frame reported by the client (e.g. ${msg.deviceId}), fixed after the first success; empty uses RemoteAddr. See endpoint/net - Session Addressing & Active Push.
The push side uses a ws node in ref:// addressing mode. See ws component.
# Examples
The following are example codes using endpoint: