2018-05-08 14:40:08 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2021-03-23 13:40:34 +01:00
<class name= "WebSocketClient" inherits= "WebSocketMultiplayerPeer" version= "3.3" >
2018-05-08 14:40:08 +02:00
<brief_description >
2019-06-22 01:04:47 +02:00
A WebSocket client implementation.
2018-05-08 14:40:08 +02:00
</brief_description>
<description >
2019-06-22 01:04:47 +02:00
This class implements a WebSocket client compatible with any RFC 6455-compliant WebSocket server.
2018-05-08 14:40:08 +02:00
This client can be optionally used as a network peer for the [MultiplayerAPI].
After starting the client ([method connect_to_url]), you will need to [method NetworkedMultiplayerPeer.poll] it at regular intervals (e.g. inside [method Node._process]).
2019-06-22 01:04:47 +02:00
You will receive appropriate signals when connecting, disconnecting, or when new data is available.
2018-05-08 14:40:08 +02:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "connect_to_url" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "url" type= "String" >
</argument>
<argument index= "1" name= "protocols" type= "PoolStringArray" default= "PoolStringArray( )" >
</argument>
<argument index= "2" name= "gd_mp_api" type= "bool" default= "false" >
</argument>
2019-10-08 20:56:10 +02:00
<argument index= "3" name= "custom_headers" type= "PoolStringArray" default= "PoolStringArray( )" >
</argument>
2018-05-08 14:40:08 +02:00
<description >
2019-06-24 15:46:24 +02:00
Connects to the given URL requesting one of the given [code]protocols[/code] as sub-protocol. If the list empty (default), no sub-protocol will be requested.
2019-06-22 01:04:47 +02:00
If [code]true[/code] is passed as [code]gd_mp_api[/code], the client will behave like a network peer for the [MultiplayerAPI], connections to non-Godot servers will not work, and [signal data_received] will not be emitted.
2019-01-27 14:59:25 +01:00
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(1)[/code] and not on this object directly (e.g. [code]get_peer(1).put_packet(data)[/code]).
2020-01-14 13:54:31 +01:00
You can optionally pass a list of [code]custom_headers[/code] to be added to the handshake HTTP request.
[b]Note:[/b] Specifying [code]custom_headers[/code] is not supported in HTML5 exports due to browsers restrictions.
2018-05-08 14:40:08 +02:00
</description>
</method>
<method name= "disconnect_from_host" >
<return type= "void" >
</return>
2018-09-24 01:49:09 +02:00
<argument index= "0" name= "code" type= "int" default= "1000" >
</argument>
<argument index= "1" name= "reason" type= "String" default= """" >
</argument>
2018-05-08 14:40:08 +02:00
<description >
2019-06-22 01:04:47 +02:00
Disconnects this client from the connected host. See [method WebSocketPeer.close] for more information.
2018-05-08 14:40:08 +02:00
</description>
</method>
2019-10-08 20:56:10 +02:00
<method name= "get_connected_host" qualifiers= "const" >
<return type= "String" >
</return>
<description >
Return the IP address of the currently connected host.
</description>
</method>
<method name= "get_connected_port" qualifiers= "const" >
<return type= "int" >
</return>
<description >
Return the IP port of the currently connected host.
</description>
</method>
2018-05-08 14:40:08 +02:00
</methods>
<members >
2019-10-08 20:56:10 +02:00
<member name= "trusted_ssl_certificate" type= "X509Certificate" setter= "set_trusted_ssl_certificate" getter= "get_trusted_ssl_certificate" >
If specified, this [X509Certificate] will be the only one accepted when connecting to an SSL host. Any other certificate provided by the server will be regarded as invalid.
2020-01-14 13:54:31 +01:00
[b]Note:[/b] Specifying a custom [code]trusted_ssl_certificate[/code] is not supported in HTML5 exports due to browsers restrictions.
2019-10-08 20:56:10 +02:00
</member>
2018-05-08 14:40:08 +02:00
<member name= "verify_ssl" type= "bool" setter= "set_verify_ssl_enabled" getter= "is_verify_ssl_enabled" >
2019-06-22 01:04:47 +02:00
If [code]true[/code], SSL certificate verification is enabled.
[b]Note:[/b] You must specify the certificates to be used in the Project Settings for it to work when exported.
2018-05-08 14:40:08 +02:00
</member>
</members>
<signals >
<signal name= "connection_closed" >
2018-09-24 01:49:09 +02:00
<argument index= "0" name= "was_clean_close" type= "bool" >
</argument>
2018-05-08 14:40:08 +02:00
<description >
2018-09-24 01:49:09 +02:00
Emitted when the connection to the server is closed. [code]was_clean_close[/code] will be [code]true[/code] if the connection was shutdown cleanly.
2018-05-08 14:40:08 +02:00
</description>
</signal>
<signal name= "connection_error" >
<description >
Emitted when the connection to the server fails.
</description>
</signal>
<signal name= "connection_established" >
<argument index= "0" name= "protocol" type= "String" >
</argument>
<description >
Emitted when a connection with the server is established, [code]protocol[/code] will contain the sub-protocol agreed with the server.
</description>
</signal>
<signal name= "data_received" >
<description >
2019-06-22 01:04:47 +02:00
Emitted when a WebSocket message is received.
[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level multiplayer peer.
2018-05-08 14:40:08 +02:00
</description>
</signal>
2018-09-24 01:49:09 +02:00
<signal name= "server_close_request" >
<argument index= "0" name= "code" type= "int" >
</argument>
<argument index= "1" name= "reason" type= "String" >
</argument>
<description >
Emitted when the server requests a clean close. You should keep polling until you get a [signal connection_closed] signal to achieve the clean close. See [method WebSocketPeer.close] for more details.
</description>
</signal>
2018-05-08 14:40:08 +02:00
</signals>
<constants >
</constants>
</class>