WebRTCMultiplayer
Inherits: NetworkedMultiplayerPeer < PacketPeer < Reference < Object
简单的接口,用于创建由WebRTCPeerConnection组成的点对点网状网络,与MultiplayerAPI兼容。
描述
这个类构建了一个完整的WebRTCPeerConnection网状结构(每个对等体有一个连接),可以作为MultiplayerAPI.network_peer使用。
你可以通过add_peer添加每个WebRTCPeerConnection,或者通过remove_peer删除它们。对等体必须在WebRTCPeerConnection.STATE_NEW状态下添加,以允许它创建适当的通道。这个类不会创建提交也不会设置描述,它只会轮询,并通知连接和断开。
除非在initialize中server_compatibility
为true
,否则NetworkedMultiplayerPeer.connection_succeeded和NetworkedMultiplayerPeer.server_disconnected将不会被触发。除此之外,数据传输的工作方式类似于 NetworkedMultiplayerPeer。
属性
refuse_new_connections |
| |
transfer_mode |
|
方法
add_peer ( WebRTCPeerConnection peer, int peer_id, int unreliable_lifetime=1 ) | |
void | close ( ) |
get_peers ( ) | |
initialize ( int peer_id, bool server_compatibility=false ) | |
void | remove_peer ( int peer_id ) |
方法说明
- Error add_peer ( WebRTCPeerConnection peer, int peer_id, int unreliable_lifetime=1 )
以给定的peer_id
添加一个新的对等体到网状结构。该WebRTCPeerConnection必须处于WebRTCPeerConnection.STATE_NEW状态。
将为可靠的、不可靠的和有序的传输创建三个通道。在创建不可靠和有序通道时,unreliable_lifetime
的值将被传递给maxPacketLifetime
选项,参阅WebRTCPeerConnection.create_data_channel。
- void close ( )
关闭所有添加的对等体连接和通道,释放所有资源。
- Dictionary get_peer ( int peer_id )
返回一个具有给定peer_id
的对等体的字典表示,有三个键。connection
包含到这个对等体的WebRTCPeerConnection,channels
三个WebRTCDataChannel的数组,以及connected
一个布尔值,表示对等体连接是否当前已连接,注,所有三个通道都打开。
- Dictionary get_peers ( )
返回一个字典,其键是对等体的id,其值是对等体的表示,如get_peer。
如果给定的peer_id
在对等体映射中,则返回true
,尽管它可能没有连接。
用给定的peer_id
(必须在1和2147483647之间)初始化多人游戏对等体。
如果server_compatibilty
是false
(默认),多人对等体将立即处于NetworkedMultiplayerPeer.CONNECTION_CONNECTED状态,NetworkedMultiplayerPeer.connection_succeeded将不会被发射出来。
如果server_compatibilty
为true
,对等体将抑制所有NetworkedMultiplayerPeer.peer_connected信号,直到一个id为NetworkedMultiplayerPeer.TARGET_PEER_SERVER的对等体连接,然后发出NetworkedMultiplayerPeer.connection_succeeded。之后将对每个已经连接的对等体和可能连接的任何新对等体发出NetworkedMultiplayerPeer.peer_connected的信号。如果服务器对等体在此之后断开连接,信号NetworkedMultiplayerPeer.server_disconnected将被发出,状态将变成NetworkedMultiplayerPeer.CONNECTION_CONNECTED。
- void remove_peer ( int peer_id )
从网格中移除给定的peer_id
的对等体。如果对等体是连接的,并为其发出NetworkedMultiplayerPeer.peer_connected,那么NetworkedMultiplayerPeer.peer_disconnected将被发出。