NetworkedMultiplayerPeer
继承
简要描述
高级网络接口,可简化多人游戏的互动。
描述
管理与网络对等方的连接。为连接到服务器的每个客户机分配唯一的id。
成员
类型 | 属性名 | 默认值 |
---|---|---|
bool | refuse_new_connections | true |
int | transfer_mode | 0 |
方法
返回值类型 | 方法名称 |
---|---|
int | get_connection_status() const |
int | get_packet_peer() const |
int | get_unique_id() const |
void | poll() |
void | set_target_peer(id: int) |
信号
- **connection_failed**
连接尝试失败时发出。
- **connection_succeeded**
连接尝试成功时发出。
- **peer_connected**
客户端连接时由服务器发出。
- **peer_disconnected**
当客户端断开连接时由服务器发出。
- **server_disconnected**
服务器断开连接时由客户端发出。
枚举
enum TransferMode:
- **TRANSFER_MODE_UNRELIABLE = 0**
不确认数据包,不对丢失的数据包进行重新发送尝试。可能比TRANSFER_MODE_UNRELIABLE_ORDERED更快。数据包可以以任何顺序到达。用于非关键数据,并始终考虑订单是否重要。
- **TRANSFER_MODE_UNRELIABLE_ORDERED = 1**
不确认数据包,不对丢失的数据包进行重新发送尝试。数据包是按照发送的顺序接收的。可能比TRANSFER_MODE_RELIABLE更快。用于非关键数据或由于重新发送尝试而接收延迟而过时的数据,例如移动和位置数据。
- **TRANSFER_MODE_RELIABLE = 2**
必须接收数据包,并应进行重发尝试,直到确认数据包为止。数据包必须按照发送的顺序接收。最可靠的传输模式,但由于开销可能是最慢的。用于必须按顺序传输和到达的关键数据,例如正在触发的功能或聊天消息。仔细考虑信息是否真的是关键的,并谨慎使用。
enum ConnectionStatus:
- **CONNECTION_DISCONNECTED = 0**
正在进行的连接已断开连接。
- **CONNECTION_CONNECTING = 1**
正在进行连接尝试。
- **CONNECTION_CONNECTED = 2**
连接尝试成功。
常量
- **TARGET_PEER_BROADCAST = 0**
数据包发送到服务器,然后重新分发给其他对等方。
- **TARGET_PEER_SERVER = 1**
数据包仅发送到服务器。
成员说明
- bool refuse_new_connections
Default | true |
---|---|
setter | set_refuse_new_connections(value) |
getter | is_refusing_new_connections |
- int transfer_mode
Default | 0 |
---|---|
setter | set_transfer_mode(value) |
getter | get_transfer_mode |
方法说明
- get_connection_status get_connection_status() const
返回连接的当前状态。
- get_packet_peer get_packet_peer() const
返回发送最新数据包的NetworkedMultiplayerPeer的ID。
- get_unique_id get_unique_id() const
返回此NetworkedMultiplayerPeer的ID。
- poll poll()
等待最多1秒钟以接收新的网络事件。
- set_target_peer set_target_peer(id: int)
设置要将数据包发送到的对等方。
id
可以是以下之一:TARGET_PEER_BROADCAST发送给所有连接的对等方,TARGET_PEER_SERVER发送给充当服务器的对等方,要发送给该特定对等方的有效对等方ID,