curl/docs/libcurl/opts/CURLOPT_WS_OPTIONS.md
Daniel Stenberg e3fe020089
docs/libcurl: generate PROTOCOLS from meta-data
Remove the PROTOCOLS section from the source files completely and
instead generate them based on the header data in the curldown files.

It also generates TLS backend information for options marked for TLS as
protocol.

Closes #13175
2024-03-23 18:13:03 +01:00

1.4 KiB

c SPDX-License-Identifier Title Section Source See-also Protocol
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. curl CURLOPT_WS_OPTIONS 3 libcurl
CURLOPT_CONNECT_ONLY (3)
curl_ws_recv (3)
curl_ws_send (3)
WS

NAME

CURLOPT_WS_OPTIONS - WebSocket behavior options

SYNOPSIS

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WS_OPTIONS, long bitmask);

DESCRIPTION

Pass a long with a bitmask to tell libcurl about specific WebSocket behaviors.

To detach a WebSocket connection and use the curl_ws_send(3) and curl_ws_recv(3) functions after the HTTP upgrade procedure, set the CURLOPT_CONNECT_ONLY(3) option to 2L.

Available bits in the bitmask

CURLWS_RAW_MODE (1)

Deliver "raw" WebSocket traffic to the CURLOPT_WRITEFUNCTION(3) callback.

In raw mode, libcurl does not handle pings or any other frame for the application.

DEFAULT

0

EXAMPLE

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    curl_easy_setopt(curl, CURLOPT_URL, "ws://example.com/");
    /* tell curl we deal with all the WebSocket magic ourselves */
    curl_easy_setopt(curl, CURLOPT_WS_OPTIONS, (long)CURLWS_RAW_MODE);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}

AVAILABILITY

Added in 7.86.0

RETURN VALUE

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.