protected virtual void OnPlayerJoined(SimplePeerInfo peerInfo) { // Add to lookups peersByConnectionId.Add(peerInfo.connection.connectionId, peerInfo); peersByPeerId.Add(peerInfo.peerId, peerInfo); if (onPlayerJoined != null) { onPlayerJoined.Invoke(peerInfo); } hasFirstPlayerShowedUp = true; }
protected virtual void OnPlayerLeft(SimplePeerInfo peerInfo) { // Remove from lookups peersByConnectionId.Remove(peerInfo.connection.connectionId); peersByPeerId.Remove(peerInfo.peerId); if (!isFirstRoom && terminateWhenLastPlayerQuits && peersByPeerId.Count == 0) { Application.Quit(); } if (onPlayerLeft != null) { onPlayerLeft.Invoke(peerInfo); } // Notify controller that the player has left roomController.PlayerLeft(peerInfo.peerId); }
protected virtual void HandleReceivedAccess(NetworkMessage netmsg) { var token = netmsg.ReadMessage <StringMessage>().value; roomController.ValidateAccess(token, (validatedAccess, error) => { if (validatedAccess == null) { logger.Error("Failed to confirm access token:" + error); // Confirmation failed, disconnect the user netmsg.conn.Disconnect(); return; } logger.Debug("Confirmed token access for peer: " + validatedAccess); var peerInfo = new SimplePeerInfo() { peerId = validatedAccess.PeerId, connection = netmsg.conn, }; OnPlayerJoined(peerInfo); }); }