WebRTCMultiplayerPeer¶
继承: MultiplayerPeer < PacketPeer < RefCounted < Object
简单的接口,用于创建由 WebRTCPeerConnection 组成的点对点网状网络,与 MultiplayerAPI 兼容。
描述¶
该课程构建了一个完整的网格 WebRTCPeerConnection (每个同伴的一个连接) 可以用作 MultiplayerAPI.multiplayer_peer.
你可以添加每个 WebRTCPeerConnection 通过 add_peer() 或通过 remove_peer()。 必须添加同伴 WebRTCPeerConnection.STATE_NEW 声明允许其创建适当的渠道。 此类不会创建报价或设置描述,它只会对其进行轮询,并通知连接和断开连接。 通过创建同伴时 create_client() 或者 create_server() 这 MultiplayerPeer.is_server_relay_supported() 方法将返回``true''
注意: 导出到Android时,请确保启用 INTERNET 在导出项目或使用一键部署之前,在Android导出预设中获得许可。 否则,任何类型的网络通信将被Android阻止。
方法¶
add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) |
|
create_client(peer_id: int, channels_config: Array = []) |
|
create_mesh(peer_id: int, channels_config: Array = []) |
|
create_server(channels_config: Array = []) |
|
void |
remove_peer(peer_id: int) |
方法说明¶
Error add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) 🔗
在给定的网格中添加一个新的对等 peer_id. 这 WebRTCPeerConnection 必须处于状态 WebRTCPeerConnection.STATE_NEW.
将为可靠,不可靠和有序的运输创建三个渠道。 价值``unreliable_lifetime`` 将传递给 "maxPacketLifetime" 创建不可靠和有序频道时的选项 (see WebRTCPeerConnection.create_data_channel()).
Error create_client(peer_id: int, channels_config: Array = []) 🔗
初始化多人应用作为给定的客户 peer_id (必须在2至2147483647之间). 在此模式下,您只应该 add_peer() 一次和 peer_id 的 1。 此模式启用 MultiplayerPeer.is_server_relay_supported(), 允许上层 MultiplayerAPI 执行对等交换和数据包中继的层。
你可以选择性地指定一个 channels_config 数组 TransferMode 这将用于创建额外的通道(WebRTC 只支持每个通道一种传输模式)。
.. rst-class:: classref-item-separator
Error create_mesh(peer_id: int, channels_config: Array = []) 🔗
将多人应用对等体初始化为网状(即所有对等体都互相连接),对等体 ID 为 peer_id(必须在 1 和 2147483647 之间)。
Error create_server(channels_config: Array = []) 🔗
初始化多用户对等体作为服务器(具有唯一的ID为“1”). 这种模式启用 MultiplayerPeer.is_server_relay_supported(), allowing the upper MultiplayerAPI layer to perform peer exchange and packet relaying.
你可以选择性地指定一个。 channels_config 数组 TransferMode 这将用于创建额外的通道(WebRTC 只支持每个通道一种传输模式)。
Dictionary get_peer(peer_id: int) 🔗
返回 ID 为 peer_id 的对等体的字典表示,其中包含三个字段。"connection" 包含与这个对等体的 WebRTCPeerConnection,"channels" 是三个 WebRTCDataChannel 的数组,而 "connected" 则是代表对等体目前是否已连接的布尔值(三个通道均已开放)。
Dictionary get_peers() 🔗
返回一个字典,其键是对等体的 id,其值是对等体的表示,如 get_peer()。
如果给定的 peer_id 在对等体映射中,则返回 true(尽管它可能没有连接)。
void remove_peer(peer_id: int) 🔗
从 mesh 结构中移除具有给定 peer_id 的对等体。如果该对等体已连接,并且为它发出过 MultiplayerPeer.peer_connected,那么 MultiplayerPeer.peer_disconnected 也将被发出。