ws_init - initialize a WebSockets handle#

struct websockets *ws_init(struct ws_callbacks *cbs, CURLM *mhandle, struct ws_attr *attr)#

Create a new (CURL-based) WebSockets handle.

Parameters:
  • cbs – set of functions to call back when server report events.

  • mhandle – user-owned curl_multi handle for performing non-blocking transfers

  • attr – optional attributes to override defaults

Returns:

newly created WebSockets handle, free with ws_cleanup()

Example#

CURLM *mhandle = curl_multi_init();
struct websockets *ws = ws_init(&cbs, mhandle, NULL);
ws_set_url(ws, "wss://example.com", NULL);

/* run the event-loop */
ws_start(ws);

uint64_t tstamp;
bool is_running;
do {
  is_running = ws_easy_run(ws, 5, &tstamp);
} while (is_running);

ws_end(ws);

ws_cleanup(ws);
curl_multi_cleanup(mhandle);