WebSocketClient

Inherits: WebSocketMultiplayerPeer < NetworkedMultiplayerPeer < PacketPeer < Reference < Object

WebSocket客户端的实现。

描述

该类实现了一个与任何符合RFC 6455的WebSocket服务器兼容的WebSocket客户端。

这个客户端可以选择性地作为MultiplayerAPI的网络对等体使用。

在启动客户端后(connect_to_url),你需要NetworkedMultiplayerPeer.poll它以固定的时间间隔,例如在Node._process内。

当连接、断开连接或有新数据时,你将收到适当的信号。

属性

X509Certificate

trusted_ssl_certificate

bool

verify_ssl

方法

Error

connect_to_url ( String url, PoolStringArray protocols=PoolStringArray( ), bool gd_mp_api=false, PoolStringArray custom_headers=PoolStringArray( ) )

void

disconnect_from_host ( int code=1000, String reason=”” )

String

get_connected_host ( ) const

int

get_connected_port ( ) const

信号

  • connection_closed ( bool was_clean_close )

当与服务器的连接被关闭时触发。was_clean_close 将是true 如果连接完全关闭。


  • connection_error ( )

当与服务器的连接失败时触发。


  • connection_established ( String protocol )

当与服务器建立连接时触发,protocol协议将包含与服务器达成一致的子协议。


  • data_received ( )

当收到WebSocket消息时触发。

注意:当作为高级别的多人对等体使用时,这个信号not不发射。


  • server_close_request ( int code, String reason )

当服务器请求完全关闭时触发。你应该继续进行轮询,直到获得connection_closed信号,以实现彻底的关闭。更多细节参阅WebSocketPeer.close

属性说明

Setter

set_trusted_ssl_certificate(value)

Getter

get_trusted_ssl_certificate()

如果指定,该X509Certificate将是连接到SSL主机时唯一接受的证书。任何由服务器提供的其他证书将被视为无效。

注意:由于浏览器的限制,在HTML5导出中不支持指定一个自定义的trusted_ssl_certificate


Setter

set_verify_ssl_enabled(value)

Getter

is_verify_ssl_enabled()

如果 true,则启用 SSL 证书验证。

注意: 你必须在项目设置中指定要使用的证书,以便在导出时发挥作用。

方法说明

连接到给定的URL,请求给定的protocols之一作为子协议。如果列表为空,默认为空,将不请求子协议。

如果true作为gd_mp_api被传递,客户端将表现得像MultiplayerAPI的网络对等体,与非Godot服务器的连接将不工作,并且data_received将不被触发。

如果false被传递,默认传递,你必须调用PacketPeer函数,put_packet, get_packet等,对通过get_peer(1)返回的WebSocketPeer,而不是直接对该对象,例如,get_peer(1).put_packet(data)

你可以选择传递一个custom_headers的列表,以添加到握手的HTTP请求中。

注意: 为了避免HTML5中的混合内容警告或错误,须使用以wss://(安全)开头的url,而不是ws://。这样做时,确保使用与服务器的SSL证书中定义的完全合格的域名。不要直接通过IP地址进行wss://连接,因为它不会与SSL证书相匹配。

注意:由于浏览器的限制,指定custom_headers在HTML5导出中不被支持。


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

断开此客户端与所连接主机的连接。更多信息参阅WebSocketPeer.close


  • String get_connected_host ( ) const

返回当前连接的主机的IP地址。


  • int get_connected_port ( ) const

返回当前连接的主机的IP端口。