void Handler_OnDisconnect(NetworkMessage netMsg) { PTPlayer player = PTPlayer.Find(netMsg.conn.connectionId); if (player != null) { players[player] = false; } string logText = player == null ? "OnDisconnected" : "OnDisconnected: " + player; PTDebug(logText); if (isTableTop) { try { players.Remove(player); } catch { } } else { //Destroy(gameObject); /* * Debug.Log("hostId=" + myClient.connection.hostId); * * myClient.connection.UnregisterHandler((short)PTEvent.Connect); * myClient.connection.UnregisterHandler(MsgType.Disconnect); * myClient.connection.UnregisterHandler((short)PTEvent.Data); * myClient.connection.UnregisterHandler((short)PTEvent.Ready); * myClient.connection.UnregisterHandler((short)PTEvent.ConfirmReadyReceived); * * myClient.connection.Disconnect(); * myClient.connection.Dispose(); * myClient.connection.ResetStats(); * myClient.connection.connectionId = -1; * * myClient.UnregisterHandler((short)PTEvent.Connect); * myClient.UnregisterHandler(MsgType.Disconnect); * myClient.UnregisterHandler((short)PTEvent.Data); * myClient.UnregisterHandler((short)PTEvent.Ready); * myClient.UnregisterHandler((short)PTEvent.ConfirmReadyReceived); * myClient.ResetConnectionStats(); * myClient.Disconnect(); * myClient.Shutdown(); * * NetworkClient.ShutdownAll(); * //NetworkTransport.RemoveHost(myClient.connection.hostId); */ players.Clear(); } if (OnDisconnected != null) { PTMessage ptMsg = new PTMessage(); ptMsg.senderName = isTableTop ? player.name : "PlayTable"; ptMsg.gameName = gameName; OnDisconnected(ptMsg); } }
void Handler_OnReadyReceived(NetworkMessage netMsg) { PTMessage msg = netMsg.ReadMessage <PTMessage>(); PTDebug("OnReady: " + msg.ToString(true)); PTPlayer player = PTPlayer.Find(msg.senderName); if (player != null) { players[player] = true; } if (OnReadyReceived != null) { OnReadyReceived(msg); } ConfirmReadyReceived(netMsg); }
void Handler_OnConnected(NetworkMessage netMsg) { PTMessage msg = netMsg.ReadMessage <PTMessage>(); PTDebug("OnConnected: " + msg.ToString(true)); PTPlayer player = PTPlayer.Find(netMsg.conn.connectionId); if (player != null) { players[player] = false; } else { PTPlayer newPlayer = new PTPlayer(msg.senderName, netMsg.conn.connectionId, null); players.Add(newPlayer, false); } if (isTableTop) { if (!acceptNewPlayer || players.Count >= maximumPlayer) { //put the newly connected player in the wait queue KeyValuePair <string, int> newPlayer = new KeyValuePair <string, int>(msg.senderName, netMsg.conn.connectionId); waitQueue.Enqueue(newPlayer); } //Tell the sender client that this server has been connected PTMessage msgFromServer = new PTMessage(); msgFromServer.senderName = playerName; NetworkServer.SendToClient(netMsg.conn.connectionId, (short)PTEvent.Connect, msgFromServer); } else { } //Invoke OnConnected Event if (OnConnected != null) { OnConnected(msg); } }
public static void Send <T>(string playerName, T data) { PTPlayer player = PTPlayer.Find(playerName); Send <T>(player, data); }