WebSocketServer

Inherits: WebSocketMultiplayerPeer < NetworkedMultiplayerPeer < PacketPeer < Reference < Object

Una implementación de un servidor WebSocket.

Descripción

Esta clase implementa un servidor WebSocket que también puede soportar la API multijugador de alto nivel.

Después de iniciar el servidor (listen), necesitarás NetworkedMultiplayerPeer.poll a intervalos regulares (por ejemplo, dentro de Node._process). Cuando los clientes se conecten, desconecten o envíen datos, recibirá la señal apropiada.

Nota: No disponible en las exportaciones en HTML5.

Propiedades

String

bind_ip

"*"

X509Certificate

ca_chain

float

handshake_timeout

3.0

CryptoKey

private_key

X509Certificate

ssl_certificate

Métodos

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 ( )

Señales

Emitido cuando un cliente solicita un cierre limpio. Debes seguir encuestando hasta que obtengas una señal client_disconnected con el mismo id para lograr el cierre limpio. Ver WebSocketPeer.close para más detalles.


  • client_connected ( int id, String protocol )

Emitido cuando un nuevo cliente se conecta. "Protocolo" será el sub-protocolo acordado con el cliente.


  • client_disconnected ( int id, bool was_clean_close )

Emitido cuando un cliente se desconecta. was_clean_close será true si la conexión se ha cerrado limpiamente.


  • data_received ( int id )

Emitido cuando se recibe un nuevo mensaje.

Nota: Esta señal es no emitida cuando se usa como par multijugador de alto nivel.

Descripciones de Propiedades

Default

"*"

Setter

set_bind_ip(value)

Getter

get_bind_ip()

Si no se establece en * se restringirán las conexiones entrantes a la dirección IP especificada. Si se establece bind_ip en 127.0.0.1, el servidor sólo escuchará al host local.


Setter

set_ca_chain(value)

Getter

get_ca_chain()

Cuando utilice SSL (consulte private_key y ssl_certificate), puede configurarlo como un X509Certificate válido que se proporcionará como información adicional de la cadena de CA durante el apretón de manos SSL.


  • float handshake_timeout

Default

3.0

Setter

set_handshake_timeout(value)

Getter

get_handshake_timeout()

The time in seconds before a pending client (i.e. a client that has not yet finished the HTTP handshake) is considered stale and forcefully disconnected.


Setter

set_private_key(value)

Getter

get_private_key()

Cuando se configura en una CryptoKey válida (junto con ssl_certificate) hará que el servidor requiera SSL en lugar del TCP normal (es decir, el protocolo wss://).


Setter

set_ssl_certificate(value)

Getter

get_ssl_certificate()

Cuando se establece en un X509Certificate válido (junto con private_key) hará que el servidor requiera SSL en lugar del TCP normal (es decir, el protocolo wss://).

Descripciones de Métodos

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

Desconecta el par identificado por id del servidor. Ver WebSocketPeer.close para más información.


Devuelve la dirección IP del par dado.


  • int get_peer_port ( int id ) const

Devuelve el puerto remoto del par dado.


Devuelve true si un par con el ID dado está conectado.


  • bool is_listening ( ) const

Devuelve true si el servidor está escuchando activamente en un puerto.


Empieza a escuchar en el puerto dado.

Puede especificar los subprotocolos deseados a través del array de "protocolos". Si la lista está vacía (por defecto), no se solicitará ningún subprotocolo.

Si se pasa true como gd_mp_api, el servidor se comportará como un par de red para la MultiplayerAPI, las conexiones de los clientes que no sean Godot no funcionarán y no se emitirá data_received.

Si en su lugar se pasa false (por defecto), debe llamar a las funciones PacketPeer (put_packet, get_packet, etc. ), en el WebSocketPeer devuelto a través de get_peer(id) para comunicarse con el par con el id dado (por ejemplo, get_peer(id).get_available_packet_count).


  • void stop ( )

Detiene el servidor y limpia su estado.