ReceiveWebSocket (Socket function): Difference between revisions
(2 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
<td>A continuation frame. A continuation frame is treated as text or binary based on the op code of the first frame.</td></tr> | <td>A continuation frame. A continuation frame is treated as text or binary based on the op code of the first frame.</td></tr> | ||
<tr><th>1</th> | <tr><th>1</th> | ||
<td>A text frame. Text frames are are translated to | <td>A text frame. Text frames are are translated to EBCDIC with the translate table in effect for the port.</td></tr> | ||
<tr><th>2</th> | <tr><th>2</th> | ||
<td>A binary frame. No translation is done for binary frames.</td></tr> | <td>A binary frame. No translation is done for binary frames.</td></tr> | ||
Line 37: | Line 37: | ||
==Usage notes== | ==Usage notes== | ||
Received data may be masked by the sender. Masked data is always unmasked using the sender's masking key before it is returned to the application. | Received data may be masked by the sender. Masked data is always unmasked using the sender's masking key before it is returned to the application. | ||
Sending a control frame always forces a flush of the TCP output buffer. A close or a ping are the only valid control frames. | |||
==Examples== | ==Examples== | ||
The following example receives a text message from a WebSocket client. | |||
<p class="code">... | |||
%sock = WebSocket | |||
if %sock is null then | |||
audittext Socket closed, status is {$STATUSD} | |||
stop | |||
end if | |||
%op = %sock:ReceiveWebSocket(%wsi) | |||
if %op eq 1 then | |||
setText %wso = Received your text message of {%wsi:length} bytes. | |||
%sock:SendWebSocket(%wso, %op, true) | |||
end if | |||
... | |||
</p> | |||
==See also== | ==See also== | ||
{{Template:Socket:ReceiveWebSocket footer}} | {{Template:Socket:ReceiveWebSocket footer}} |
Latest revision as of 16:27, 19 August 2019
Receive Web Socket framed message (Socket class)
[Introduced in Model 204 7.8 βeta]
This page is under construction.
Syntax
%opCode = socket:ReceiveWebSocket( string)
Syntax terms
%opCode | op code is a number indicating the type of web socket frame received. Numbers 0-7 are non-control frames. Numbers 8-15 are control frames.
| ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
socket | Socket object | ||||||||||||||||||
string | string |
Usage notes
Received data may be masked by the sender. Masked data is always unmasked using the sender's masking key before it is returned to the application.
Sending a control frame always forces a flush of the TCP output buffer. A close or a ping are the only valid control frames.
Examples
The following example receives a text message from a WebSocket client.
... %sock = WebSocket if %sock is null then audittext Socket closed, status is {$STATUSD} stop end if %op = %sock:ReceiveWebSocket(%wsi) if %op eq 1 then setText %wso = Received your text message of {%wsi:length} bytes. %sock:SendWebSocket(%wso, %op, true) end if ...