NetworkServer

NetworkServer是一个管理来自多个客户端的连接的高级API类。

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

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

NetworkServer是一个单例。它具有静态便利功能,如NetworkServer.SendToAll()NetworkServer.Spawn(),它们自动使用单例实例。

NetworkManager使用NetworkServer,但可以在没有NetworkManager的情况下使用。

网络服务器管理已生成的一组网络对象。对象由NetworkServer.Spawn()生成,它将它们添加到此集合中,并使它们在客户端上创建。生成的对象在被销毁时会自动删除,或者通过调用NetworkServer.UnSpawn()从生成的集合中删除它们 - 这不会销毁该对象。

NetworkServer使用了许多内部消息,当NetworkServer.Listen()被调用时会设置这些消息。

静态属性

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

静态方法

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

?