Esempio n. 1
0
        public void NotifyHolepunchSuccess(ProudServer server, ProudSession session, NotifyHolepunchSuccessMessage 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.UdpEnabled       = true;
            session.UdpLocalEndPoint = message.LocalEndPoint;
            session.SendUdpAsync(new NotifyClientServerUdpMatchedMessage(message.MagicNumber));
        }
Esempio n. 2
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));
        }
        public void NotifyHolepunchSuccess(ProudSession session, NotifyHolepunchSuccessMessage message)
        {
            if (session.P2PGroup == null || _filter.Config.UdpListener == null || session.Guid != message.MagicNumber)
            {
                return;
            }

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

            session.UdpEnabled       = true;
            session.UdpEndPoint      = message.EndPoint;
            session.UdpLocalEndPoint = message.LocalEndPoint;
            session.UdpSocket        = _filter.UdpSocket;
            session.Send(new NotifyClientServerUdpMatchedMessage(message.MagicNumber));
        }
        public async Task <bool> OnHandle(MessageContext context, NotifyHolepunchSuccessMessage message)
        {
            var session = context.Session;

            session.Logger.Debug("NotifyHolepunchSuccess={@Message}", message);
            if (!_udpSocketManager.IsRunning || session.HolepunchMagicNumber != message.MagicNumber)
            {
                return(true);
            }

            session.LastUdpPing      = DateTimeOffset.Now;
            session.UdpEnabled       = true;
            session.UdpLocalEndPoint = message.LocalEndPoint;
            session.Send(new NotifyClientServerUdpMatchedMessage(message.MagicNumber), true);
            return(true);
        }