Ejemplo n.º 1
0
 public void NotifyCSEncryptedSessionKeyMessage(ProudServer server, ProudSession session, NotifyCSEncryptedSessionKeyMessage message)
 {
     session.Logger?.Verbose("Handshake:NotifyCSEncryptedSessionKey");
     session.Crypt = new Crypt(server.Rsa.Decrypt(message.SecureKey, true));
     session.Crypt.InitializeFastEncryption(session.Crypt.AES.Decrypt(message.FastKey));
     session.SendAsync(new NotifyCSSessionKeySuccessMessage());
 }
Ejemplo n.º 2
0
        public void NotifyCSEncryptedSessionKeyMessage(ProudServer server, ProudSession session, NotifyCSEncryptedSessionKeyMessage message)
        {
            var secureKey = server.Rsa.Decrypt(message.SecureKey, true);

            session.Crypt = new Crypt(secureKey);
            session.SendAsync(new NotifyCSSessionKeySuccessMessage());
        }
Ejemplo n.º 3
0
        //public ChatSession ChatSession { get; set; }

        public GameSession(uint hostId, IChannel channel, ProudServer server)
            : base(hostId, channel, server)
        {
            UpdateShop = false;
            ValidRes   = 0;
            Player     = null;
        }
Ejemplo n.º 4
0
        public void C2S_CreateUdpSocketAck(ProudServer server, ProudSession session, C2S_CreateUdpSocketAckMessage message)
        {
            if (session.P2PGroup == null || session.UdpSocket == null || !server.UdpSocketManager.IsRunning)
            {
                return;
            }

            //Logger<>.Debug($"Client:{session.HostId} - Starting server holepunch");
            session.SendAsync(new RequestStartServerHolepunchMessage(session.HolepunchMagicNumber));
        }
Ejemplo n.º 5
0
        public void ServerHolepunch(ProudServer server, ProudSession session, ServerHolepunchMessage message)
        {
            session.Logger?.Debug("ServerHolepunch={@Message}", message);
            if (session.P2PGroup == null || !_server.UdpSocketManager.IsRunning || session.HolepunchMagicNumber != message.MagicNumber)
            {
                return;
            }

            session.SendUdpAsync(new ServerHolepunchAckMessage(session.HolepunchMagicNumber, session.UdpEndPoint));
        }
Ejemplo n.º 6
0
        public void C2S_CreateUdpSocketAck(ProudServer server, ProudSession session, C2S_CreateUdpSocketAckMessage message)
        {
            session.Logger?.Debug("{@Message}", message);
            if (session.P2PGroup == null || session.UdpSocket == null || session.UdpEnabled ||
                !server.UdpSocketManager.IsRunning)
            {
                return;
            }

            session.SendAsync(new RequestStartServerHolepunchMessage(session.HolepunchMagicNumber));
        }
Ejemplo n.º 7
0
        public void NotifyHolepunchSuccess(ProudServer server, ProudSession session, ServerHolepunchMessage message)
        {
            if (session.P2PGroup == null || !_server.UdpSocketManager.IsRunning || session.HolepunchMagicNumber != message.MagicNumber)
            {
                return;
            }

            //Logger<>.Debug($"Client:{session.HostId} - Server holepunch success(EndPoint:{message.EndPoint} LocalEndPoint:{message.LocalEndPoint})");

            session.SendUdpAsync(new ServerHolepunchAckMessage(session.HolepunchMagicNumber, session.UdpEndPoint));
        }
Ejemplo n.º 8
0
        public void NotifyHolepunchSuccess(ProudServer server, ProudSession session, NotifyHolepunchSuccessMessage message)
        {
            session.Logger?.Debug("NotifyHolepunchSuccess={@Message}", message);
            if (session.P2PGroup == null || !_server.UdpSocketManager.IsRunning || session.HolepunchMagicNumber != message.MagicNumber)
            {
                return;
            }

            session.LastUdpPing      = DateTimeOffset.Now;
            session.UdpEnabled       = true;
            session.UdpLocalEndPoint = message.LocalEndPoint;
            session.SendUdpAsync(new NotifyClientServerUdpMatchedMessage(message.MagicNumber));
        }
Ejemplo n.º 9
0
        public void C2S_RequestCreateUdpSocket(ProudServer server, ProudSession session)
        {
            session.Logger?.Debug("C2S_RequestCreateUdpSocket");
            if (session.P2PGroup == null || session.UdpEnabled || !server.UdpSocketManager.IsRunning)
            {
                return;
            }

            var socket = server.UdpSocketManager.NextSocket();

            session.UdpSocket            = socket;
            session.HolepunchMagicNumber = Guid.NewGuid();
            session.SendAsync(new S2C_RequestCreateUdpSocketMessage(new IPEndPoint(server.UdpSocketManager.Address, ((IPEndPoint)socket.Channel.LocalAddress).Port)));
        }
Ejemplo n.º 10
0
        public void C2S_RequestCreateUdpSocket(ProudServer server, ProudSession session)
        {
            if (session.P2PGroup == null || !server.UdpSocketManager.IsRunning)
            {
                return;
            }

            // TODO: Don't assign a new socket when the client already has a active socket
            //Logger<>.Debug($"Client:{session.HostId} - Requesting UdpSocket");
            var socket = server.UdpSocketManager.NextSocket();

            session.UdpSocket            = socket;
            session.HolepunchMagicNumber = Guid.NewGuid();
            session.SendAsync(new S2C_RequestCreateUdpSocketMessage(new IPEndPoint(server.UdpSocketManager.Address, ((IPEndPoint)socket.Channel.LocalAddress).Port)));
        }
Ejemplo n.º 11
0
 public ProudSession Create(uint hostId, IChannel channel, ProudServer server)
 {
     return(new GameSession(hostId, channel, server));
 }
Ejemplo n.º 12
0
 public SessionHandler(ProudServer server)
 {
     _server = server;
 }
Ejemplo n.º 13
0
 public CoreHandler(ProudServer server)
 {
     _server = server;
 }
Ejemplo n.º 14
0
 public void NotifyLog(ProudServer server, NotifyLogMessage message)
 {
     server.Configuration.Logger?.Debug("NotifyLog {@Message}", message);
 }
Ejemplo n.º 15
0
 public UdpHandler(UdpSocket socket, ProudServer server)
 {
     _socket = socket;
     _server = server;
 }
Ejemplo n.º 16
0
        //public ChatSession ChatSession { get; set; }

        public GameSession(uint hostId, IChannel channel, ProudServer server)
            : base(hostId, channel, server)
        {
        }
Ejemplo n.º 17
0
 public ErrorHandler(ProudServer server)
 {
     _server = server;
 }
Ejemplo n.º 18
0
 public void NotifyUdpToTcpFallbackByClient(ProudServer server, ProudSession session)
 {
     session.Logger?.Information("Fallback to tcp relay by client");
     session.UdpEnabled = false;
     server.SessionsByUdpId.Remove(session.UdpSessionId);
 }