Websockets
Kore provides an easy to use interface for websockets. Once a connection has been upgraded to a websocket it will use user given callbacks for incoming websocket messages.
The prototypes for the callbacks are as follows:
void onconnect(struct connection *c);
void onmessage(struct connection *c, u_int8_t op, const void *data, size_t length);
void ondisconnect(struct connection *);
kore_websocket_handshake
Synopsis
void kore_websocket_handshake(struct http_request *req, const char *onconnect,
const char *onmessage, const char *ondisconnect)
Description
Performs an upgrade of an HTTP connection to a websocket connection.
Parameter | Description |
---|---|
req | The HTTP request. |
onconnect | Name of the function that will be called when a new websocket client connects. |
onmessage | Name of the function that will be called when a new websocket message arrives. |
ondisconnect | Name of the function that will be called when a websocket client disconnects. |
Returns
Nothing
kore_websocket_send
Synopsis
void kore_websocket_send(struct connection *c, u_int8_t op, const void *data, size_t length)
Description
Sends a websocket message to a client.
Parameter | Description |
---|---|
c | A client connection that has upgraded to websockets. |
op | The websocket op type. |
data | The data to be sent. |
length | The length of the data to be sent. |
Websocket ops |
---|
WEBSOCKET_OP_TEXT |
WEBSOCKET_OP_BINARY |
Returns
Nothing
kore_websocket_broadcast
Synopsis
void kore_websocket_broadcast(struct connection *src, u_int8_t op, const void *data, size_t length, int scope)
Description
Broadcasts data to all connected websocket clients.
Parameter | Description |
---|---|
src | Source client connection. |
op | The websocket op type. |
data | The data to be sent. |
length | The length of the data to be sent. |
scope | The scope of the broadcast (worker only or all workers). |
scope |
---|
WEBSOCKET_BROADCAST_LOCAL |
WEBSOCKET_BROADCAST_GLOBAL |
Returns
Nothing