### Function

# Soup websocket_client_prepare_handshake

since: 3.0

#### Declaration [src]

    void
    soup_websocket_client_prepare_handshake (
      SoupMessage* msg,
      const char* origin,
      char** protocols,
      GPtrArray* supported_extensions
    )

#### Description [src]

Adds the necessary headers to `msg` to request a WebSocket handshake including supported WebSocket extensions.

The message body and non-WebSocket-related headers are not modified.

This is a low-level function; if you use `soup_session_websocket_connect_async()` to create a WebSocket connection, it will call this for you.

Available since: 3.0

#### Parameters

`msg`

  Type: `SoupMessage`

  A `SoupMessage`.

  The data is owned by the caller of the function.

`origin`

  Type: `const char*`

  The “Origin” header to set.

  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*`

  List of protocols to offer.

  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.

`supported_extensions`

  Type: An array of `None`

  List of supported extension types.

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