WebSocketServer

    A WebSocket server implementation.

    This class implements a WebSocket server that can also support the high-level multiplayer API.

    After starting the server (), you will need to NetworkedMultiplayerPeer.poll it at regular intervals (e.g. inside ). When clients connect, disconnect, or send data, you will receive the appropriate signal.

    Note: Not available in HTML5 exports.

    Properties

    voiddisconnect_peer ( id, int code=1000, reason=”” )
    String ( int id ) const
    get_peer_port ( id ) const
    bool ( int id ) const
    is_listening ( ) const
    listen ( port, PoolStringArray protocols=PoolStringArray( ), gd_mp_api=false )
    voidstop ( )

    Signals

    Emitted when a client requests a clean close. You should keep polling until you get a signal with the same id to achieve the clean close. See WebSocketPeer.close for more details.


    • client_connected ( id, String protocol )

    Emitted when a new client connects. “protocol” will be the sub-protocol agreed with the client.


    • client_disconnected ( id, bool was_clean_close )

    Emitted when a client disconnects. was_clean_close will be true if the connection was shutdown cleanly.


    • data_received ( id )

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

    When not set to * will restrict incoming connections to the specified IP address. Setting bind_ip to will cause the server to listen only to the local host.


    • ca_chain
    Setterset_ca_chain(value)
    Getterget_ca_chain()

    When using SSL (see private_key and ), you can set this to a valid X509Certificate to be provided as additional CA chain information during the SSL handshake.


    • private_key

    When set to a valid CryptoKey (along with ) will cause the server to require SSL instead of regular TCP (i.e. the wss:// protocol).


    Setterset_ssl_certificate(value)
    Getterget_ssl_certificate()

    When set to a valid X509Certificate (along with ) will cause the server to require SSL instead of regular TCP (i.e. the wss:// protocol).

    Method Descriptions

    • void disconnect_peer ( int id, code=1000, String reason=”” )

    Disconnects the peer identified by id from the server. See for more information.


    • String get_peer_address ( id ) const

    Returns the IP address of the given peer.


    • int get_peer_port ( id ) const

    • bool has_peer ( id ) const

    Returns true if a peer with the given ID is connected.


    • bool is_listening ( ) const

    Returns true if the server is actively listening on a port.


    • listen ( int port, protocols=PoolStringArray( ), bool gd_mp_api=false )

    Starts listening on the given port.

    You can specify the desired subprotocols via the “protocols” array. If the list empty (default), no sub-protocol will be requested.

    If true is passed as , the server will behave like a network peer for the , connections from non-Godot clients will not work, and data_received will not be emitted.

    If false is passed instead (default), you must call functions (put_packet, get_packet, etc.), on the WebSocketPeer returned via get_peer(id) to communicate with the peer with given id (e.g. get_peer(id).get_available_packet_count).


    Stops the server and clear its state.