Inherits: WebSocketMultiplayerPeer < NetworkedMultiplayerPeer < PacketPeer < Reference < Object

Category: Core

Brief Description

A WebSocket server implementation


void disconnect_peer ( int id, int code=1000, String reason=”” )
String get_peer_address ( int id ) const
int get_peer_port ( int id ) const
bool has_peer ( int id ) const
bool is_listening ( ) const
Error listen ( int port, PoolStringArray protocols=PoolStringArray( ), bool gd_mp_api=false )
void stop ( )


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

  • client_connected ( int id, String protocol )

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

  • client_disconnected ( int id, bool was_clean_close )

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

  • data_received ( int id )

Emitted when a new message is received. Note: This signal is NOT emitted when used as high level multiplayer peer.


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

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

Note: This class will not work in HTML5 exports due to browser restrictions.

Method Descriptions

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

Disconnects the peer identified by id from the server. See WebSocketPeer.close for more info.

Returns the IP address of the given peer.

  • int get_peer_port ( int id ) const

Returns the remote port of the given peer.

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.

Start listening on the given port.

You can specify the desired subprotocols via the “protocols” array. If the list empty (default), “binary” will be used.

If true is passed as gd_mp_api, the server will behave like a network peer for the MultiplayerAPI, connections from non Godot clients 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(id) to communicate with the peer with given id (e.g. get_peer(id).get_available_packet_count).

  • void stop ( )

Stop the server and clear its state.