REST Methods¶
Overview¶
WCS integrates with the backend server using REST / HTTP calls or REST hooks or methods as we call them.
Therefore, you provide the WCS server with the script API, and WCS sends data on connections, calls, video streams etc to the API
REST hooks can be used to:
- Authenticate connections to the server by token or by password
- Receive real-time information about connects, disconnects, started and ended streams, calls and so on
- Redefine data received from the client. For example, you can rename a stream or hide its real name or redirect a call
- Implement custom signaling with Websocket transmission of data. For example, send a text message in the chat to all connected clients
REST methods should be implemented as simple HTTP / HTTPS scripts that work in pair with JSON in the body of an HTTP request and return JSON in the HTTP body of responses.
Request¶
Protocol | HTTP/HTTPS |
URL | `http://path/method` or `https://path/method` |
Method | POST |
Content-Type | application/json |
Body | JSON |
Response¶
In response, WCS should receive a standard HTTP response containing the body of JSON
status | 200 |
Reason phrase | OK |
Body | JSON |
Disabling REST hooks¶
REST hook sending is enabled by default. To disable it, the following parameter must be set in flashphoner.properties file
Backend server response delays handling¶
Backend server response to WCS requests delays are possible under high load. Maximum duration of such delays can be controlled with the following parameter in flashphoner.properties file
By default, maximum backend server response delay duration set to 15 seconds. If backend response is not received during this time, the exception will be printed to server logs
09:05:17,012 ERROR RestClient - API-ASYNC-pool-12-thread-2 Got exception in REST
java.net.SocketTimeoutException: Read timed out
The error will be handled as set in restClientConfig.
It is strongly recommended to set maximum backend server response delay duration from 1 to 10 seconds. The value
fully disables delay control.
Exceptions handling while sending a request¶
Since build 5.2.1475, if an error occurs while sending a request to backend server, a number of retries will be performed, 3 by default:
Exceptions handling can be disabled by the following parameter
In this case, if request sending fails, no retries are performed, and a corresponding exception is written to server log, for example