Provided by: libcurl4-doc_8.2.1-1ubuntu3.3_all bug

NAME

       curl_ws_send - send WebSocket data

SYNOPSIS

       #include <curl/easy.h>

       CURLcode curl_ws_send(CURL *curl, const void *buffer, size_t buflen,
                             size_t *sent, curl_off_t fragsize,
                             unsigned int flags);

DESCRIPTION

       This function call is EXPERIMENTAL.

       Send  the  specific  message fragment over an established WebSocket connection. The buffer
       holds the data to send and it is buflen number of payload bytes in that memory area.

       sent is returned as the number of payload bytes actually sent.

       To send a (huge) fragment using multiple calls with partial content per  invoke,  set  the
       CURLWS_OFFSET bit and the fragsize argument as the total expected size for the first part,
       then set the CURLWS_OFFSET with a zero fragsize for the following parts.

       If not sending a partial fragment or if this is raw mode, fragsize should be set to zero.

       If CURLWS_RAW_MODE is enabled in CURLOPT_WS_OPTIONS(3), the flags argument should  be  set
       to 0.

       To  send  a  message  consisting of multiple frames, set the CURLWS_CONT bit in all frames
       except the final one.

FLAGS

       CURLWS_TEXT
              The buffer contains text data. Note that this makes a difference to  WebSocket  but
              libcurl  itself  will  not make any verification of the content or precautions that
              you actually send valid UTF-8 content.

       CURLWS_BINARY
              This is binary data.

       CURLWS_CONT
              This is not the final fragment of the message, which implies  that  there  will  be
              another fragment coming as part of the same message where this bit is not set.

       CURLWS_CLOSE
              Close this transfer.

       CURLWS_PING
              This is a ping.

       CURLWS_PONG
              This is a pong.

       CURLWS_OFFSET
              The  provided data is only a partial fragment and there will be more in a following
              call to curl_ws_send(). When sending only a piece of the fragment  like  this,  the
              fragsize  must  be provided with the total expected fragment size in the first call
              and it needs to be zero in subsequent calls.

EXAMPLE

       int ping(CURL *curl, const char *send_payload)
       {
         size_t sent;
         CURLcode result =
           curl_ws_send(curl, send_payload, strlen(send_payload), &sent, 0,
                        CURLWS_PING);
         return (int)result;
       }

AVAILABILITY

       Added in 7.86.0.

RETURN VALUE

       CURLE_OK (zero) means that the data was sent properly, non-zero means an error occurred as
       <curl/curl.h>  defines.  See  the  libcurl-errors(3)  man  page  for  the  full  list with
       descriptions.

SEE ALSO

       curl_easy_setopt(3), curl_easy_perform(3), curl_easy_getinfo(3), curl_ws_recv(3), libcurl-
       ws(3),