A WebSocket client implementation.
    public class WebSocketClient : WebSocketMultiplayerPeer

This class implements a WebSocket client compatible with any RFC 6455-compliant WebSocket server.

This client can be optionally used as a network peer for the MultiplayerAPI.

After starting the client (ConnectToUrl(string, string[], bool)), you will need to NetworkedMultiplayerPeer.Poll() it at regular intervals (e.g. inside Node._Process(float)).

You will receive appropriate signals when connecting, disconnecting, or when new data is available.

Inheritance Chain


    public WebSocketClient()


    "connection_closed" (bool was_clean_close)

Emitted when the connection to the server is closed. was_clean_close will be true if the connection was shutdown cleanly.

    "connection_error" ()

Emitted when the connection to the server fails.

    "connection_established" (String protocol)

Emitted when a connection with the server is established, protocol will contain the sub-protocol agreed with the server.

    "data_received" ()

Emitted when a WebSocket message is received.

Note: This signal is not emitted when used as high-level multiplayer peer.

    "server_close_request" (int code, String reason)

Emitted when the server requests a clean close. You should keep polling until you get a connection_closed signal to achieve the clean close. See WebSocketPeer.Close(int, string) for more details.


    public bool VerifySsl { get; set; }

If true, SSL certificate verification is enabled.

Note: You must specify the certificates to be used in the Project Settings for it to work when exported.


    public Error ConnectToUrl(string url, string[] protocols = null, bool gdMpApi = false)

Connects to the given URL requesting one of the given protocols as sub-protocol. If the list empty (default), no sub-protocol will be requested.

If true is passed as gdMpApi, the client will behave like a network peer for the MultiplayerAPI, connections to non-Godot servers will not work, and data_received will not be emitted.

If false is passed instead (default), you must call PacketPeer functions (put_packet, get_packet, etc.) on the WebSocketPeer returned via get_peer(1) and not on this object directly (e.g. get_peer(1).put_packet(data)).

    public void DisconnectFromHost(int code = 1000, string reason = "")

Disconnects this client from the connected host. See WebSocketPeer.Close(int, string) for more information.

    [Obsolete("IsVerifySslEnabled is deprecated. Use the VerifySsl property instead.")]
    public bool IsVerifySslEnabled()

Getter for VerifySsl

    [Obsolete("SetVerifySslEnabled is deprecated. Use the VerifySsl property instead.")]
    public void SetVerifySslEnabled(bool enabled)

Setter for VerifySsl