Simple websocket based on IXWebSocket.
-
サンプルプログラムは,プロジェクトモードで開いてください。(17r5以降)
-
オブジェクト型を使用しています。(v17以降)
-
スレッドセーフです。
server:=Websocket server ({options})
Creates a websocket server object.
サーバーオブジェクトを作成して返します。
Options
Property | Type | Description |
---|---|---|
method | TEXT | name of project method to invoke on event |
worker | TEXT | value passed on as parameter to method ($5 ) |
window | LONGINT | value passed on as parameter to method ($6 ) |
process | LONGINT | value passed on as parameter to method ($7 ) |
port | LONGINT | used to configure the server |
host | TEXT | used to configure the server |
backlog | LONGINT | used to configure the server |
maxConnections | LONGINT | used to configure the server |
The return object contains the current configuration plus a ref
property.
client:=Websocket client ({options})
Creates a websocket client object.
クライアントオブジェクトを作成して返します。
Options
Property | Type | Description |
---|---|---|
method | TEXT | name of project method to invoke on event |
worker | TEXT | value passed on as parameter to method ($5 ) |
window | LONGINT | value passed on as parameter to method ($6 ) |
process | LONGINT | value passed on as parameter to method ($7 ) |
url | TEXT | used to configure the client |
pingInterval | LONGINT | used to configure the client |
pingTimeout | LONGINT | used to configure the client |
enableAutomaticReconnection | BOOLEAN | used to configure the client |
enablePong | BOOLEAN | used to configure the client |
perMessageDeflate | OBJECT | used to configure the client |
perMessageDeflate.enabled | BOOLEAN | used to configure the client |
perMessageDeflate.clientNoContextTakeover | BOOLEAN | used to configure the client |
perMessageDeflate.serverNoContextTakeover | BOOLEAN | used to configure the client |
perMessageDeflate.serverMaxWindowBits | LONGINT | used to configure the client |
perMessageDeflate.clientMaxWindowBits | LONGINT | used to configure the client |
disablePerMessageDeflate | BOOLEAN | mutually exclusive with perMessageDeflate |
The return object contains the current configuration plus a ref
property.
Note: The window
, worker
and process
paramters may be useful for CALL FORM
, CALL WORKER
or POST OUTSIDE CALL
.
Signature of callback method
The method is executed in a local process named $websocket_event_queue
.
Note: Try not to abort this process from the debugger (let it exit gracefully). If a debug window displayed via TRACE
is aborted, the callback method is no longer executed. By contrast, a debug window displayed via a break point does not prevent subsequent calls, but closing the application while such window is running may hang the application. You might want to delegate the response to a new process or a worker. In fact, that is the intended purpose of the parameters process
, window
and worker
.
Context
For message, ping, pong, fragment
Property | Type | Description |
---|---|---|
wireSize | LONGINT | |
binary | BOOLEAN | always false if the plugin is used to send() |
data | TEXT |
For open
Property | Type | Description |
---|---|---|
uri | TEXT |
Headers are added as key value pair.
For error
Property | Type | Description |
---|---|---|
decompressionError | BOOLEAN | |
reason | TEXT | |
http_status | LONGINT | |
wait_time | REAL | |
retries | LONGINT |
For close
Property | Type | Description |
---|---|---|
code | LONGINT | |
reason | TEXT | |
remote | BOOLEAN |
status:=Websocket server start (server)
Start a websocket server.
サーバーを開始します。
The server
object may optionally contain method
worker
window
process
to modify current configuration. Other proprties are mutable.
Status
Property | Type | Description |
---|---|---|
success | BOOLEAN | |
message | TEXT |
status:=Websocket client start (client)
Start a websocket client.
クライアントを開始します。
The client
object may optionally contain a connection timeout
property (default: 20
seconds).
It may also contain method
worker
window
process
url
pingInterval
pingTimeout
enableAutomaticReconnection
enablePong
perMessageDeflate
disablePerMessageDeflate
to modify current configuration.
Status
Property | Type | Description |
---|---|---|
success | BOOLEAN | |
http_status | LONGINT | |
errorStr | TEXT | |
uri | TEXT | |
headers | OBJECT |
status:=Websocket server stop (server)
Stop a websocket server.
サーバーを停止します。
The server
object may contain properties (see Websocket server start
) to be used the next time the server is started. The status
object is a copy of the server object with updated properties.
status:=Websocket client stop (client)
Stop a websocket client.
クライアントを停止します。
The client
object may contain properties (see Websocket client start
) to be used the next time the server is started. The status
object is a copy of the client object with updated properties.
status:=Websocket server send (server;data)
Send data to connected clients.
クライアントにデータを送信します。
The server
object may optionally contain a clients
property, which is a collection of integer (client ref
) to send data to a select target. Otherwise, data is sent to all clients connected to the server.
A status object is returned for each target.
Status
Property | Type | Description |
---|---|---|
success | BOOLEAN | |
compressionError | BOOLEAN | |
payloadSize | LONGINT | |
wireSize | LONGINT | |
client | LONGINT |
status:=Websocket client send (client;data)
Send data to connected server.
サーバーにデータを送信します。
Status
Property | Type | Description |
---|---|---|
success | BOOLEAN | |
compressionError | BOOLEAN | |
payloadSize | LONGINT | |
wireSize | LONGINT |
status:=Websocket server clear (server)
Dispose a server.
サーバーオブジェクトを破棄します。
All remaining objects are automatically cleared on exit.
The returned object is empty (unused).
status:=Websocket client clear (server)
Dispose a client.
クライアントオブジェクトを破棄します。
All remaining objects are automatically cleared on exit.
The returned object is empty (unused).
status:=Websocket server clients (server)
Returns a list of connected clients (integer ref
).
サーバーに接続しているクライアントの参照番号を返します。