Method

SoupServeradd_websocket_handler

Declaration [src]

void
soup_server_add_websocket_handler (
  SoupServer* server,
  const char* path,
  const char* origin,
  char** protocols,
  SoupServerWebsocketCallback callback,
  gpointer user_data,
  GDestroyNotify destroy
)

Description [src]

Adds a WebSocket handler to server for requests prefixed by path.

If path is NULL or “/”, then this will be the default handler for all requests that don’t have a more specific handler.

When a path has a WebSocket handler registered, server will check incoming requests for WebSocket handshakes after all other handlers have run (unless some earlier handler has already set a status code on the message), and update the request’s status, response headers, and response body accordingly.

If origin is non-NULL, then only requests containing a matching “Origin” header will be accepted. If protocols is non-NULL, then only requests containing a compatible “Sec-WebSocket-Protocols” header will be accepted. More complicated requirements can be handled by adding a normal handler to path, and having it perform whatever checks are needed and setting a failure status code if the handshake should be rejected.

Parameters

path

Type: const char*

The toplevel path for the handler.

The argument can be NULL.
The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
origin

Type: const char*

The origin of the connection.

The argument can be NULL.
The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
protocols

Type: An array of char*

The protocols supported by this handler.

The argument can be NULL.
The array must be NULL-terminated.
The data is owned by the caller of the function.
Each element is a NUL terminated UTF-8 string.
callback

Type: SoupServerWebsocketCallback

Callback to invoke for successful WebSocket requests under path.

user_data

Type: gpointer

Data for callback.

The argument can be NULL.
The data is owned by the caller of the function.
destroy

Type: GDestroyNotify

Destroy notifier to free user_data.