<?xml version="1.0" encoding="UTF-8" ?>
<class name="WebSocketPeer" inherits="PacketPeer" version="4.2">
	<brief_description>
		A class representing a specific WebSocket connection.
	</brief_description>
	<description>
		This class represents a specific WebSocket connection, allowing you to do lower level operations with it.
		You can choose to write to the socket in binary or text mode, and you can recognize the mode used for writing by the other peer.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="close">
			<return type="void" />
			<argument index="0" name="code" type="int" default="1000" />
			<argument index="1" name="reason" type="String" default="&quot;&quot;" />
			<description>
				Closes this WebSocket connection. [code]code[/code] is the status code for the closure (see RFC 6455 section 7.4 for a list of valid status codes). [code]reason[/code] is the human readable reason for closing the connection (can be any UTF-8 string that's smaller than 123 bytes).
				[b]Note:[/b] To achieve a clean close, you will need to keep polling until either [signal WebSocketClient.connection_closed] or [signal WebSocketServer.client_disconnected] is received.
				[b]Note:[/b] The HTML5 export might not support all status codes. Please refer to browser-specific documentation for more details.
			</description>
		</method>
		<method name="get_connected_host" qualifiers="const">
			<return type="String" />
			<description>
				Returns the IP address of the connected peer.
				[b]Note:[/b] Not available in the HTML5 export.
			</description>
		</method>
		<method name="get_connected_port" qualifiers="const">
			<return type="int" />
			<description>
				Returns the remote port of the connected peer.
				[b]Note:[/b] Not available in the HTML5 export.
			</description>
		</method>
		<method name="get_current_outbound_buffered_amount" qualifiers="const">
			<return type="int" />
			<description>
				Returns the current amount of data in the outbound websocket buffer. [b]Note:[/b] HTML5 exports use WebSocket.bufferedAmount, while other platforms use an internal buffer.
			</description>
		</method>
		<method name="get_write_mode" qualifiers="const">
			<return type="int" enum="WebSocketPeer.WriteMode" />
			<description>
				Gets the current selected write mode. See [enum WriteMode].
			</description>
		</method>
		<method name="is_connected_to_host" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if this peer is currently connected.
			</description>
		</method>
		<method name="set_no_delay">
			<return type="void" />
			<argument index="0" name="enabled" type="bool" />
			<description>
				Disable Nagle's algorithm on the underling TCP socket (default). See [method StreamPeerTCP.set_no_delay] for more information.
				[b]Note:[/b] Not available in the HTML5 export.
			</description>
		</method>
		<method name="set_write_mode">
			<return type="void" />
			<argument index="0" name="mode" type="int" enum="WebSocketPeer.WriteMode" />
			<description>
				Sets the socket to use the given [enum WriteMode].
			</description>
		</method>
		<method name="was_string_packet" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if the last received packet was sent as a text payload. See [enum WriteMode].
			</description>
		</method>
	</methods>
	<constants>
		<constant name="WRITE_MODE_TEXT" value="0" enum="WriteMode">
			Specifies that WebSockets messages should be transferred as text payload (only valid UTF-8 is allowed).
		</constant>
		<constant name="WRITE_MODE_BINARY" value="1" enum="WriteMode">
			Specifies that WebSockets messages should be transferred as binary payload (any byte combination is allowed).
		</constant>
	</constants>
</class>
