/// <summary> /// Disconnect the specified <see cref="NetWorker"/> (socket) and remove it from the <see cref="Networking.Sockets"/> lookup /// </summary> /// <param name="socket">The socket <see cref="NetWorker"/> to be shut down</param> public static void Disconnect(NetWorker socket) { ushort[] keys = new ushort[Sockets.Keys.Count]; Sockets.Keys.CopyTo(keys, 0); for (int i = 0; i < keys.Length; i++) { if (Sockets[keys[i]] == socket) { socket.Disconnect(); Sockets[keys[i]] = null; Sockets.Remove(keys[i]); break; } } }
/// <summary> /// Disconnect the specified <see cref="NetWorker"/> (socket) and remove it from the <see cref="Networking.Sockets"/> lookup /// </summary> /// <param name="socket">The socket <see cref="NetWorker"/> to be shut down</param> public static void Disconnect(NetWorker socket) { ushort[] keys = new ushort[Sockets.Keys.Count]; Sockets.Keys.CopyTo(keys, 0); for (int i = 0; i < keys.Length; i++) { if (Sockets[keys[i]] == socket) { if (socket == PrimarySocket && NetworkingManager.Instance != null) NetworkingManager.Instance.Disconnect(); socket.Disconnect(); Sockets[keys[i]] = null; Sockets.Remove(keys[i]); break; } } }
/// <summary> /// Disconnect a player on a given NetWorker(Socket) /// </summary> /// <param name="socket">NetWorker(Socket) to be disconnected from</param> /// <param name="player">The player reference to disconnect</param> /// <exception cref="NetworkException">Thrown when the <see cref="NetWorker"/> on the specified port is not a server</exception> /// <example> /// // Disconnect the first player on the primary socket /// Networking.Disconnect(Networking.PrimarySocket, Networking.PrimarySocket.Players[0]); /// </example> public static void Disconnect(NetWorker socket, NetworkingPlayer player) { if (!socket.IsServer) throw new NetworkException("Disconnecting players can only be managed by the server, the NetWorker on the specified port is not a server"); socket.Disconnect(player); }
/// <summary> /// Disconnect a player on a given NetWorker(Socket) /// </summary> /// <param name="socket">NetWorker(Socket) to be disconnected from</param> /// <param name="player">The player reference to disconnect</param> /// <exception cref="NetworkException">Thrown when the <see cref="NetWorker"/> on the specified port is not a server</exception> /// <example> /// // Disconnect the first player on the primary socket /// Networking.Disconnect(Networking.PrimarySocket, Networking.PrimarySocket.Players[0]); /// </example> public static void Disconnect(NetWorker socket, NetworkingPlayer player) { if (!socket.IsServer) throw new NetworkException("Disconnecting players can only be managed by the server, the NetWorker on the specified port is not a server"); if (socket == PrimarySocket && NetworkingManager.Instance == null) NetworkingManager.Instance.Disconnect(); socket.Disconnect(player); }