public void Execute(GameServerMessageRouter <TPlayer> .ServerModel <TPlayer> model, PongRequestMessage message)
        {
            model.server.pingController.PongReceived(model.model, message.pingRequestId);

            var players = model.server.playerCollection.values;

            for (int index = 0; index < players.Count; index++)
            {
                TPlayer player = players[index];
                model.model.Send(new PingResultRequestMessage(player.playerId, player.mostRecentPingValue), Channel.unreliable);
            }
        }
        public void Execute(GameServerMessageRouter <TPlayer> .ServerModel <NetEndPoint> model, NatIdentifierRequestMessage message)
        {
            if (!model.server.playerCollection.TryGetPlayer(message.playerId, out TPlayer player))
            {
                return;
            }
            player.remoteIdentifiedEndPoint = model.model;
            model.server.networkServer.Register(model.model, player);

            model.server.listener.GameServerPlayerDidConnect(player, Channel.unreliable);

            var serverEndPoint = model.server.networkServer.listeningOnEndPoint;

            player.Send(new NatIdentifierResponseMessage(serverEndPoint.address, serverEndPoint.port), Channel.unreliable);
        }