9e303ef71c
Both client and server are supported on native builds (as usual). SSL server is still not supported, but will soon be possible with this new library. The API stays the same, we just need to work out potential issues due to this big library switch.
126 lines
4.8 KiB
XML
126 lines
4.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="WebSocketServer" inherits="WebSocketMultiplayerPeer" category="Core" version="3.2">
|
|
<brief_description>
|
|
A WebSocket server implementation.
|
|
</brief_description>
|
|
<description>
|
|
This class implements a WebSocket server that can also support the high-level multiplayer API.
|
|
After starting the server ([method listen]), you will need to [method NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside [method Node._process]). When clients connect, disconnect, or send data, you will receive the appropriate signal.
|
|
[b]Note:[/b] This class will not work in HTML5 exports due to browser restrictions.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="disconnect_peer">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<argument index="1" name="code" type="int" default="1000">
|
|
</argument>
|
|
<argument index="2" name="reason" type="String" default="""">
|
|
</argument>
|
|
<description>
|
|
Disconnects the peer identified by [code]id[/code] from the server. See [method WebSocketPeer.close] for more information.
|
|
</description>
|
|
</method>
|
|
<method name="get_peer_address" qualifiers="const">
|
|
<return type="String">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the IP address of the given peer.
|
|
</description>
|
|
</method>
|
|
<method name="get_peer_port" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the remote port of the given peer.
|
|
</description>
|
|
</method>
|
|
<method name="has_peer" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if a peer with the given ID is connected.
|
|
</description>
|
|
</method>
|
|
<method name="is_listening" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<description>
|
|
Returns [code]true[/code] if the server is actively listening on a port.
|
|
</description>
|
|
</method>
|
|
<method name="listen">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="port" type="int">
|
|
</argument>
|
|
<argument index="1" name="protocols" type="PoolStringArray" default="PoolStringArray( )">
|
|
</argument>
|
|
<argument index="2" name="gd_mp_api" type="bool" default="false">
|
|
</argument>
|
|
<description>
|
|
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 [code]true[/code] is passed as [code]gd_mp_api[/code], the server will behave like a network peer for the [MultiplayerAPI], connections from non-Godot clients will not work, and [signal data_received] will not be emitted.
|
|
If [code]false[/code] is passed instead (default), you must call [PacketPeer] functions ([code]put_packet[/code], [code]get_packet[/code], etc.), on the [WebSocketPeer] returned via [code]get_peer(id)[/code] to communicate with the peer with given [code]id[/code] (e.g. [code]get_peer(id).get_available_packet_count[/code]).
|
|
</description>
|
|
</method>
|
|
<method name="stop">
|
|
<return type="void">
|
|
</return>
|
|
<description>
|
|
Stops the server and clear its state.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<signals>
|
|
<signal name="client_close_request">
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<argument index="1" name="code" type="int">
|
|
</argument>
|
|
<argument index="2" name="reason" type="String">
|
|
</argument>
|
|
<description>
|
|
Emitted when a client requests a clean close. You should keep polling until you get a [signal client_disconnected] signal with the same [code]id[/code] to achieve the clean close. See [method WebSocketPeer.close] for more details.
|
|
</description>
|
|
</signal>
|
|
<signal name="client_connected">
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<argument index="1" name="protocol" type="String">
|
|
</argument>
|
|
<description>
|
|
Emitted when a new client connects. "protocol" will be the sub-protocol agreed with the client.
|
|
</description>
|
|
</signal>
|
|
<signal name="client_disconnected">
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<argument index="1" name="was_clean_close" type="bool">
|
|
</argument>
|
|
<description>
|
|
Emitted when a client disconnects. [code]was_clean_close[/code] will be [code]true[/code] if the connection was shutdown cleanly.
|
|
</description>
|
|
</signal>
|
|
<signal name="data_received">
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Emitted when a new message is received.
|
|
[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level multiplayer peer.
|
|
</description>
|
|
</signal>
|
|
</signals>
|
|
<constants>
|
|
</constants>
|
|
</class>
|