NetworkedMultiplayerENet

Inherits: NetworkedMultiplayerPeer < PacketPeer < Reference < Object

类别: 核心

简要说明

packetpeer实现使用 ENet 类库。

方法

无效

close_connection ( int wait_usec=100 )

Error

create_client ( String address, int port, int in_bandwidth=0, int out_bandwidth=0, int client_port=0 )

Error

create_server ( int port, int max_clients=32, int in_bandwidth=0, int out_bandwidth=0 )

无效

disconnect_peer ( int id, bool now=false )

int

get_last_packet_channel ( ) const

int

get_packet_channel ( ) const

String

get_peer_address ( int id ) const

int

get_peer_port ( int id ) const

无效

set_bind_ip ( String ip )

枚举

枚举 CompressionMode

  • COMPRESS_NONE = 0 ---无压缩。它使用的带宽最多,但对CPU资源的需求最少。

  • COMPRESS_RANGE_CODER = 1 ——ENET的内置范围编码。

  • COMPRESS_FASTLZ = 2 --- FastLZ 压缩。此选项使用的CPU资源比 COMPRESS_ZLIB 以牺牲更多带宽为代价。

  • COMPRESS_ZLIB = 3 --- Zlib 压缩。此选项使用的带宽比 COMPRESS_FASTLZ 以牺牲更多的CPU资源为代价。

  • COMPRESS_ZSTD = 4 --- Zstandard 压缩。

描述

应传递给的packetpeer实现 SceneTree.network_peer 在初始化为客户机或服务器之后。然后可以通过连接到 SceneTree 信号。

属性描述

  • bool always_ordered

违约

设定器

设置“始终”顺序(值)

吸气剂

是否总是订购

使用时强制顺序数据包 NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE (因此行为类似于 NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED )这是对RPC系统使用排序的唯一方法。

  • int channel_count

违约

3

设定器

设置频道计数(值)

吸气剂

获取频道计数()

ENET使用的信道数。通道用于分离不同类型的数据。例如,在可靠的或有序的模式下,包传送顺序是以每个通道为基础来保证的。

违约

0

设定器

设置压缩模式(值)

吸气剂

获取压缩模式()

用于网络数据包的压缩方法。它们在压缩速度和带宽之间有不同的权衡,如果您使用压缩,可能需要测试哪一个最适合您的用例。

  • int transfer_channel

违约

-1

设定器

设置传输通道(值)

吸气剂

获取传输通道()

设置用于传输数据的默认通道。默认情况下,此值为 -1 这意味着网络环境将只使用两个通道,一个用于可靠的,一个用于不可靠的数据包。频道 0 是保留的,不能使用。将此成员设置为介于 0channel_count (排除)将强制ENE使用该通道发送数据。

方法说明

  • void close_connection ( int wait_usec=100 )

关闭连接。如果当前没有建立连接,则忽略。如果这是一个服务器,它会尝试在强制断开所有客户机之前通知所有客户机。如果这是一个客户机,它只需关闭与服务器的连接。

创建连接到服务器的客户端 address 使用指定的 port . 给定地址必须是完全限定的域名(例如 "www.example.com" )或IPv4或IPv6格式的IP地址(例如 "192.168.1.1" )这个 port 是服务器正在侦听的端口。这个 in_bandwidthout_bandwidth 参数可用于将传入和传出带宽限制为每秒给定的字节数。默认值0表示无限带宽。请注意,ENET将战略性地将数据包放在对等端之间连接的特定端,以确保对等端的带宽不被淹没。带宽参数还确定连接的窗口大小,该窗口大小限制了在任何给定时间可能传输的可靠数据包的数量。退换商品 @GlobalScope.OK 如果创建了客户端, @GlobalScope.ERR_ALREADY_IN_USE 如果此networkedmultiplayerenet实例已具有打开的连接(在这种情况下,需要调用 close_connection 第一)或 @GlobalScope.ERR_CANT_CREATE 如果无法创建客户端。如果 client_port 如果指定了,客户机还将监听给定的端口;这对于某些NAT遍历技术很有用。

  • Error create_server ( int port, int max_clients=32, int in_bandwidth=0, int out_bandwidth=0 )

创建通过以下方式监听连接的服务器 port . 端口必须是0到65535之间的可用、未使用的端口。请注意,1024以下的端口是特权端口,可能需要提升权限,具体取决于平台。要更改服务器侦听的接口,请使用 set_bind_ip . 默认IP是通配符 "*" ,它监听所有可用的接口。 max_clients 是一次允许的最大客户机数量,可以使用最多4096个客户机,但同时客户机的可实现数量可能要低得多,这取决于应用程序。有关带宽参数的更多详细信息,请参阅 create_client . 退换商品 @GlobalScope.OK 如果创建了服务器, @GlobalScope.ERR_ALREADY_IN_USE 如果此networkedmultiplayerenet实例已具有打开的连接(在这种情况下,需要调用 close_connection 第一)或 @GlobalScope.ERR_CANT_CREATE 如果无法创建服务器。

  • void disconnect_peer ( int id, bool now=false )

断开给定对等机的连接。如果“现在”设置为 true ,将立即关闭连接,而不刷新排队的消息。

  • int get_last_packet_channel ( ) const

返回通过 PacketPeer.get_packet

  • int get_packet_channel ( ) const

返回将通过 PacketPeer.get_packet

返回给定对等机的IP地址。

  • int get_peer_port ( int id ) const

返回给定对等机的远程端口。

  • void set_bind_ip ( String ip )

创建服务器时使用的IP。这被设置为通配符 "*" 默认情况下,它绑定到所有可用接口。给定的IP必须采用IPv4或IPv6地址格式,例如: "192.168.1.1" .