Version: 2017.3

NetworkServer

class in UnityEngine.Networking

切换到手册

描述

NetworkServer 使用 NetworkServerSimple 实现基本网络功能,并增加了更多类似游戏的功能。

NetworkServer 通过 NetworkServerSimple 实例处理来自远程客户端的远程连接,并且拥有针对本地客户端的本地连接。

NetworkServer 是一个单例。它提供静态的便捷函数,例如 NetworkServer.SendToAll() 和 NetworkServer.Spawn(),这些函数自动使用单例实例。

NetworkServer 可以与 NetworkManager 结合使用,但也可以独立使用。

生成的联网对象集由 NetworkServer 管理。NetworkServer.Spawn() 生成对象并将其添加到该集合中,并在客户端上创建这些对象。生成的对象被销毁时,系统会自动将其删除,或者,也可以通过调用 NetworkServer.UnSpawn() 从生成的对象集中将其删除,但这不会销毁这些对象。

NetworkServer 会使用许多内部消息,这些消息是在调用 NetworkServer.Listen() 时设置的。

静态变量

active检查服务器是否已启动。
connections与客户端的所有当前连接的列表。
dontListen如果启用此属性,则服务器将不会在常规网络端口上监听传入连接。
handlers向服务器注册的消息处理程序的字典。
hostTopology服务器使用的主机拓扑。
listenPort服务器监听的端口。
localClientActive如果本地客户端当前在服务器上处于活动状态,则为 true。
localConnections服务器上本地连接的列表。
maxDelay在连接上发送数据包之前的最大延时。
networkConnectionClass创建新网络连接时要使用的类。
numChannels为网络配置的通道数量。
objects这是已在服务器上生成的联网对象的字典。
serverHostId此服务器使用的传输层 hostId。
useWebSockets这使得服务器监听 WebSockets 连接,而不是常规的传输层连接。

静态函数

AddExternalConnection这可接收来自其他外部来源的网络连接,并将其添加到服务器。
AddPlayerForConnection当 AddPlayer 消息处理程序收到玩家请求后,服务器会调用此请求,以将玩家对象与连接关联。
BecomeHost这将允许已从服务器断开连接的客户端成为新版游戏的主机。
ClearHandlers清除所有注册的回调处理程序。
ClearLocalObjects此方法可清除服务器已识别的所有联网对象。如果场景更改在删除所有对象时没有按常规方式来销毁它们,则需要使用此方法。
ClearSpawners清除此服务器中所有注册的生成预制件和生成处理程序。
Configure此方法配置服务器的传输层设置。
Destroy销毁此对象以及所有客户端上的相应对象。
DestroyPlayersForConnection此方法将销毁与服务器上的 NetworkConnections 关联的所有玩家对象。
DisconnectAll断开所有当前连接的客户端。
FindLocalObject这可以通过指定的网络 ID 找到本地 NetworkIdentity 对象。
GetConnectionStats获取所有连接的聚合数据包统计信息。
GetStatsIn获取服务器的入站网络统计信息。
GetStatsOut获取客户端的出站网络统计信息。
Listen在指定端口号上启动服务器。请注意,如果已经创建了一个匹配项,此方法将使用 Relay Server 而不是本地套接字进行监听。
ListenRelay使用 Relay Server 启动服务器。这是使用 Relay Server 的手动方法;如果已经存在匹配项,常规的 NetworkServer.Connect() 将自动使用 Relay Server。
RegisterHandler为特定消息类型注册处理程序。
RemoveExternalConnection此方法将删除使用 AddExternalConnection() 添加的外部连接。
ReplacePlayerForConnection此方法会将连接的玩家对象替换成其他玩家对象。不销毁旧玩家对象。
Reset重置 NetworkServer 单例。
ResetConnectionStats重置所有连接上的数据包统计信息。
SendByChannelToAll将网络消息发送到指定传输层 QoS 通道上所有连接的客户端。
SendByChannelToReady将网络消息发送到指定传输层 QoS 通道上已“准备就绪”的所有连接的客户端。
SendBytesToPlayer此方法会向指定玩家发送一个字节数组。
SendBytesToReady此方法会向所有准备的玩家发送一个字节数组。
SendToAll将带有指定类型编号的消息结构发送到所有连接的客户端。
SendToClient将消息发送到拥有指定连接 ID 的客户端。
SendToClientOfPlayer将消息发送到拥有指定玩家对象实例的客户端。
SendToReady将带有指定类型编号的消息结构仅发送到已准备就绪的客户端。
SendUnreliableToAll将指定消息结构作为不可靠消息发送到所有连接的客户端。
SendUnreliableToReady将指定消息结构作为不可靠消息仅发送到已准备就绪的客户端。
SendWriterToReady将 NetworkWriter 对象的内容发送至已准备就绪的玩家。
SetAllClientsNotReady将所有连接的客户端标记为不适用。
SetClientNotReady将连接的客户端设置为未准备就绪状态。
SetClientReady将客户端设置为准备就绪状态。
SetNetworkConnectionClass此方法设置创建新网络连接时使用的类。
Shutdown此方法将关闭服务器并断开所有客户端连接。
Spawn在已准备就绪的所有客户端上生成指定的游戏对象。
SpawnObjects此方法会在服务器上生成场景中的 NetworkIdentity 对象。
SpawnWithClientAuthority此方法会生成一个像 NetworkServer.Spawn() 一样的对象,同时将客户端权限分配到指定客户端。
UnregisterHandler取消注册特定消息类型的处理程序。
UnSpawn此方法将取得一个已经生成的对象,并将其回收。