Simple websocket based on IXWebSocket-11.0.8
on Mac, add USE_OPEN_SSL
. TLS is not supported with AppleSSL backend.
callback is invoked for the following events:
- Message(0)
- Open(1)
- Close(2)
- Error(3)
for simplicity, it is not called for the following events:
- Ping(4)
- Pong(5)
- Fragment(6)
Websocket SET METHOD(method)
Parameter | Type | Description |
---|---|---|
method | Text | callback project method name |
method:=Websocket Get method
Parameter | Type | Description |
---|---|---|
method | Text | callback project method name |
create client object
socket:=Websocket client(options)
Parameter | Type | Description |
---|---|---|
options | Object | |
options.URL | Text | |
options.headers | Object | optional, KVP |
options.pingInterval | Number | optional, seconds |
options.enableAutomaticReconnection | Boolean | optional, true by default |
options.enablePong | Boolean | optional |
options.enablePerMessageDeflate | Boolean | optional |
options.maxWaitBetweenReconnectionRetries | Number | optional, milliseconds |
options.certFile | Text | optional, PEM |
options.keyFile | Text | optional, PEM |
options.caFile | Text | optional, PEM |
options.ciphers | Text | optional |
options.tls | Boolean | optional |
socket | Object | |
socket.id | Number | unique identifier (positive) |
if id
is passed in options
, information is returned instead of creating a new client object.
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.readyState | Text | |
socket.URL | Text | |
socket.perMessageDeflateOptionsEnabled | Boolean | |
socket.automaticReconnectionEnabled | Boolean | |
socket.maxWaitBetweenReconnectionRetries | Number | |
socket.pingInterval | Number | |
socket.bufferedAmount | Number |
connect and run client object
status:=Websocket client start(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
socket.timeout | Number | optional, 30 seconds by default |
status | Object | |
status.headers | Object | |
status.http_status | Number | |
status.success | Boolean | |
status.uri | Text | |
status.errorStr | Text | on failure |
Websocket client
property can be modified while the client is stopped
stop client object
status:=Websocket client stop(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
socket.code | Number | optional |
socket.reason | Text | optional |
status | Object | information (same as Websocket client ) |
send message
status:=Websocket client send(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
socket.message | Text | optional |
status | Object | |
status.success | Boolean | |
status.compressionError | Boolean | |
status.payloadSize | Number | |
status.wireSize | Number |
stop and destroy client object
status:=Websocket client clear(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
status | Object | |
status.success | Boolean |
create server object
socket:=Websocket server(options)
Parameter | Type | Description |
---|---|---|
options | Object | |
options.port | Number | optional |
options.backlog | Number | optional |
options.handshakeTimeoutSecs | Number | optional |
options.addressFamily | Number | optional |
options.maxConnections | Number | optional |
options.host | Text | optional |
options.enablePong | Boolean | optional |
options.enablePerMessageDeflate | Boolean | optional |
options.certFile | Text | optional, PEM |
options.keyFile | Text | optional, PEM |
options.caFile | Text | optional, PEM |
options.ciphers | Text | optional |
options.tls | Boolean | optional |
socket | Object | |
socket.id | Number | unique identifier (negative) |
if id
is passed in options
, information is returned instead of creating a new server object.
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.clients | Collection of Text | URLs |
listen and start server object
status:=Websocket client start(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
status | Object | |
status.headers | Object | |
status.http_status | Number | |
status.success | Boolean | |
status.uri | Text | |
status.errorStr | Text | on failure |
Websocket server
property other than port
host
backlog
maxConnections
handshakeTimeoutSecs
addressFamily
can be modified while the server is stopped
stop server object
status:=Websocket server stop(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
status | Object | information (same as Websocket server ) |
send message
status:=Websocket server send(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
socket.message | Text | optional |
socket.uri | Text or Collection of Text | optional |
status | Object | |
status.statuses[] | Collection of Objects | |
status.statuses[].success | Boolean | |
status.statuses[].compressionError | Boolean | |
status.statuses[].payloadSize | Number | |
status.statuses[].wireSize | Number | |
status.statuses[].uri | Text |
by default, message is sent to all connected clients. to target a specific client, pass uri
stop and destroy server object
status:=Websocket server clear(socket)
Parameter | Type | Description |
---|---|---|
socket | Object | |
socket.id | Number | socket unique identifier |
status | Object | |
status.success | Boolean |