[ Version ( since = "2.68" ) ]
public bool websocket_server_check_handshake_with_extensions (Message msg, string? origin, string[]? protocols, GenericArray<TypeClass>? supported_extensions) throws Error

Examines the method and request headers in msg and determines whether msg contains a valid handshake request.

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. If supported_extensions is non-%NULL, then only requests containing valid supported extensions in "Sec-WebSocket-Extensions" header will be accepted.

Normally soup_websocket_server_process_handshake_with_extensioins will take care of this for you, and if you use add_websocket_handler to handle accepting WebSocket connections, it will call that for you. However, this function may be useful if you need to perform more complicated validation; eg, accepting multiple different Origins, or handling different protocols depending on the path.



Message containing the client side of a WebSocket handshake


expected Origin header


allowed WebSocket protocols.


list of supported extension types


true if msg contained a valid WebSocket handshake, false and an error if not.

Namespace: Soup
Package: libsoup-2.4