示例#1
0
        public JsonResult KeepAlive()
        {
            KeepAliveHandler handler = new KeepAliveHandler();
            string           text    = handler.GetKeepAlive();

            return(Json(text, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public static void Switch(QRServer server, EndPoint endPoint, byte[] recv)
        {
            try
            {
                switch (recv[0])
                {
                case QRClient.Avaliable:
                    AvailableCheckHandler.BackendAvaliabilityResponse(server, endPoint, recv);
                    break;

                // Note: BattleSpy make use of this despite not being used in both OpenSpy and the SDK.
                // Perhaps it was present on an older version of GameSpy SDK
                case QRGameServer.Challenge:
                    ChallengeHandler.ServerChallengeResponse(server, endPoint, recv);
                    break;

                case QRClient.Heartbeat:     // HEARTBEAT
                    HeartBeatHandler.HeartbeatResponse(server, endPoint, recv);
                    break;

                case QRClient.KeepAlive:
                    KeepAliveHandler.KeepAliveResponse(server, endPoint, recv);
                    break;

                default:
                    server.UnknownDataRecived(recv);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
                server.ReceiveAsync();
            }
        }
示例#3
0
        /// <summary>
        /// Callback method for when the UDP Query Report socket recieves a connection
        /// </summary>
        protected override void ProcessAccept(UDPPacket packet)
        {
            IPEndPoint remote = (IPEndPoint)packet.AsyncEventArgs.RemoteEndPoint;

            // Need at least 5 bytes
            if (packet.BytesRecieved.Length < 5)
            {
                Release(packet.AsyncEventArgs);
                return;
            }

            // If we dont reply, we must manually release the EventArgs back to the pool
            Replied = false;
            try
            {
                switch (packet.BytesRecieved[0])
                {
                case QRClient.Avaliable:
                    AvaliableCheckHandler.BackendAvaliabilityResponse(this, packet);
                    break;

                // Note: BattleSpy make use of this despite not being used in both OpenSpy and the SDK.
                // Perhaps it was present on an older version of GameSpy SDK
                case QRGameServer.Challenge:
                    ChallengeHandler.ServerChallengeResponse(this, packet);
                    break;

                case QRClient.Heartbeat:     // HEARTBEAT
                    HeartBeatHandler.HeartbeatResponse(this, packet);
                    break;

                case QRClient.KeepAlive:
                    KeepAliveHandler.KeepAliveResponse(this, packet);
                    break;

                default:
                    LogWriter.Log.Write("[QR] [Recv] unknown data: ", LogLevel.Error);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
            }
            finally
            {
                //if we replied QR data we release packet so that the EventArgs can be used on another connection
                if (Replied == true)
                {
                    Release(packet.AsyncEventArgs);
                }
            }
        }
示例#4
0
 /// <summary>
 /// keep-aliveHttpClient
 /// </summary>
 /// <param name="handler">HttpMessageHandler</param>
 private KeepAliveHttpClient(KeepAliveHandler handler)
     : base(handler, true)
 {
     this.MessageHandler = handler;
 }