private void StartPingJob() { HeartBeatRequest heartBeatRequest = new HeartBeatRequest(); string packetPayload = JsonFx.Json.JsonWriter.Serialize(heartBeatRequest); SendPacket(PacketTypes.PKT_CS_PING, packetPayload); }
public static IRequest Serilize(byte[] rawRequest) { IRequest request; if (rawRequest.Length < 1) { return(null); } switch ((QRPacketType)rawRequest[0]) { case QRPacketType.AvaliableCheck: request = new AvaliableRequest(rawRequest); break; //verify challenge to check game server is real or fake; //after verify we can add game server to server list case QRPacketType.Challenge: request = new ChallengeRequest(rawRequest); break; case QRPacketType.HeartBeat: request = new HeartBeatRequest(rawRequest); break; case QRPacketType.KeepAlive: request = new KeepAliveRequest(rawRequest); break; case QRPacketType.EchoResponse: request = new QRRequestBase(rawRequest); break; case QRPacketType.ClientMessageACK: request = new QRRequestBase(rawRequest); break; default: LogWriter.UnknownDataRecieved(rawRequest); request = null; break; } if (request == null) { return(null); } if (!(bool)request.Parse()) { LogWriter.ToLog(LogEventLevel.Error, ErrorMessage.GetErrorMessage(QRErrorCode.Parse)); return(null); } return(request); }
public HttpResponseMessage PostHeartBeat([FromBody] HeartBeatRequest HeartBeatRequest) { Logger.Debug("Inside UM Controller- PostHeartBeat"); Logger.Debug("Request: " + new JavaScriptSerializer().Serialize(HeartBeatRequest)); ErrorResponse error = new ErrorResponse(); var response = new Dictionary <string, object>(); try { string SessionID = Guid.Empty.ToString(); if (Request.Headers != null) { SessionID = Request.Headers.LastOrDefault().Value.First(); Logger.Debug("SessionID: " + SessionID.ToString()); if (_IUMServer.ValidateUser(SessionID)) { System.Guid UserGUID = _IUMServer.GetUserGUID(SessionID); if (_IUMServer.PostHeartBeat(HeartBeatRequest, UserGUID) > 0) { Logger.Debug("Response: No response In Body,Process is Success"); return(Request.CreateResponse(HttpStatusCode.OK)); } else { error.ErrorCode = HttpStatusCode.InternalServerError; error.ErrorMessage = "Unable to insert PostHeartBeat"; response.Add("ErrorResponse", error); return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } } else { error.ErrorCode = HttpStatusCode.Forbidden; error.ErrorMessage = "Session has expired, please login again"; response.Add("ErrorResponse", error); return(Request.CreateResponse(HttpStatusCode.Forbidden, response)); } } else { error.ErrorCode = HttpStatusCode.BadRequest; error.ErrorMessage = "Unable to get SessionID in Header"; response.Add("ErrorResponse", error); return(Request.CreateResponse(HttpStatusCode.BadRequest, response)); } } catch (Exception ex) { Logger.Error(ex.Message); error.ErrorCode = HttpStatusCode.InternalServerError; error.ErrorMessage = "Failure"; response.Add("ErrorResponse", error); return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } }
public void HeartBeatTest() { var rawRequest = new byte[] { 0x03, 0xae, 0x1f, 0x77, 0x64, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x70, 0x30, 0x00, 0x31, 0x39, 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e, 0x30, 0x2e, 0x31, 0x30, 0x39, 0x00, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x70, 0x6f, 0x72, 0x74, 0x00, 0x31, 0x31, 0x31, 0x31, 0x31, 0x00, 0x6e, 0x61, 0x74, 0x6e, 0x65, 0x67, 0x00, 0x31, 0x00, 0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x00, 0x33, 0x00, 0x67, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x67, 0x6d, 0x74, 0x65, 0x73, 0x74, 0x00, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x79, 0x20, 0x51, 0x52, 0x32, 0x20, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x00, 0x67, 0x61, 0x6d, 0x65, 0x76, 0x65, 0x72, 0x00, 0x32, 0x2e, 0x30, 0x30, 0x00, 0x68, 0x6f, 0x73, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x00, 0x32, 0x35, 0x30, 0x30, 0x30, 0x00, 0x6d, 0x61, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x67, 0x6d, 0x74, 0x6d, 0x61, 0x70, 0x31, 0x00, 0x67, 0x61, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x00, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x00, 0x6e, 0x75, 0x6d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x00, 0x36, 0x00, 0x6e, 0x75, 0x6d, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x00, 0x32, 0x00, 0x6d, 0x61, 0x78, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x00, 0x33, 0x32, 0x00, 0x67, 0x61, 0x6d, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x00, 0x6f, 0x70, 0x65, 0x6e, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x00, 0x74, 0x65, 0x61, 0x6d, 0x70, 0x6c, 0x61, 0x79, 0x00, 0x31, 0x00, 0x66, 0x72, 0x61, 0x67, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x00, 0x30, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x00, 0x34, 0x30, 0x00, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x79, 0x00, 0x38, 0x30, 0x30, 0x00, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x6f, 0x6e, 0x00, 0x31, 0x00, 0x00, 0x00, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x00, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x00, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x00, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x00, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x00, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x00, 0x00, 0x4a, 0x6f, 0x65, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x00, 0x32, 0x37, 0x00, 0x36, 0x00, 0x31, 0x32, 0x33, 0x00, 0x31, 0x00, 0x34, 0x30, 0x39, 0x00, 0x4c, 0x33, 0x33, 0x74, 0x20, 0x30, 0x6e, 0x33, 0x00, 0x36, 0x00, 0x32, 0x33, 0x00, 0x32, 0x37, 0x37, 0x00, 0x30, 0x00, 0x36, 0x37, 0x33, 0x00, 0x52, 0x61, 0x70, 0x74, 0x6f, 0x72, 0x00, 0x33, 0x30, 0x00, 0x31, 0x00, 0x31, 0x34, 0x36, 0x00, 0x31, 0x00, 0x37, 0x30, 0x31, 0x00, 0x47, 0x72, 0x38, 0x31, 0x00, 0x32, 0x31, 0x00, 0x31, 0x36, 0x00, 0x31, 0x32, 0x35, 0x00, 0x31, 0x00, 0x35, 0x38, 0x32, 0x00, 0x46, 0x6c, 0x75, 0x62, 0x62, 0x65, 0x72, 0x00, 0x33, 0x00, 0x32, 0x31, 0x00, 0x31, 0x31, 0x30, 0x00, 0x30, 0x00, 0x32, 0x39, 0x38, 0x00, 0x53, 0x61, 0x72, 0x67, 0x65, 0x00, 0x33, 0x00, 0x32, 0x38, 0x00, 0x31, 0x32, 0x35, 0x00, 0x31, 0x00, 0x35, 0x39, 0x30, 0x00, 0x00, 0x02, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x74, 0x00, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x00, 0x61, 0x76, 0x67, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x00, 0x00, 0x52, 0x65, 0x64, 0x00, 0x32, 0x39, 0x34, 0x00, 0x33, 0x37, 0x39, 0x00, 0x42, 0x6c, 0x75, 0x65, 0x00, 0x38, 0x39, 0x00, 0x33, 0x38, 0x33, 0x00 }; var request = new HeartBeatRequest(rawRequest); request.Parse(); Assert.Equal("gmtest", request.GameName); Assert.Equal((uint)1685528494, request.InstantKey); Assert.Equal(6, request.PlayerData.Count); Assert.Equal(19, request.ServerData.Count); Assert.Equal(2, request.TeamData.Count); Assert.Equal(HeartBeatReportType.ServerTeamPlayerData, request.ReportType); }
public static void HeartBeatRequestCall(int user_id, int mode, float time) { HeartBeatRequest request = new HeartBeatRequest { user_id = user_id, mode = mode, time = time, }; Message message = new Message(); message.PackBuffer(ServiceID.SYNCHRONIZATION_HEART_BEAT_SERVICE, JsonTools.SerializeToString(request)); NetworkMgr.Instance.Send(message); }
private Empty ExecuteHeartbeat(HeartBeatRequest request) { try { string replicaId = request.ServerId; gStore.GetConnectionManager().ResetTimer(replicaId); } catch (Exception e) { Console.WriteLine(e); } return(new Empty()); }
public async Task <IActionResult> StoreHeartBeat([FromBody] HeartBeatRequest heartBeatRequest) { try { await _heartBeatDataManager.StoreHeartBeat(heartBeatRequest); } catch (HandledException) { return(InternalServerErrorResult()); } catch (Exception ex) { await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource()); return(InternalServerErrorResult()); } return(Ok()); }
public HeartBeatResponse Heartbeat(HeartBeatRequest request) { var lastTimeStamp = request.LastTimeStamp; var lst = service.GetNeedRefreshTimeStampArticles(lastTimeStamp); List <long> taskList = new List <long>(); if (lst.Contains((int)TimeStampArticleEnum.AccountSubject)) { taskList.Add((long)HeartBeatTask.RefreshAccountSubjectTask); } if (lst.Contains((int)TimeStampArticleEnum.UserList)) { taskList.Add((long)HeartBeatTask.RefreshUserListTask); } if (lst.Contains((int)TimeStampArticleEnum.Auxiliary)) { taskList.Add((long)HeartBeatTask.RefreshAuxiliaryTask); } return(new HeartBeatResponse { TimeStamp = CommonUtils.TotalMilliseconds(), TaskList = taskList }); }
public async Task StoreHeartBeat(HeartBeatRequest heartBeatRequest) { IDbBase dbBase = null; try { dbBase = _dbFactory.GetDbBase(); var parameters = new List <TimescaleParameter> { new TimescaleParameter { NpgsqlValue = heartBeatRequest.InstanceId, ParameterName = INSTANCE_ID_PARAMETER_NAME, NpgsqlDbType = NpgsqlDbType.Bigint } }; await dbBase.ConnectAsync(); await dbBase.ExecuteNonQueryFunctionAsync(ADD_HEART_BEAT_FUNCTION_NAME, parameters); } catch (Exception ex) { await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource()); throw new HandledException(ex); } finally { if (dbBase != null) { await dbBase.DisconnectAsync(); } } }
public int PostHeartBeat(HeartBeatRequest HeartBeatRequest, Guid UserGUID) { try { int result = 0; IUserRepository _IUserRepository; _IUserRepository = new UserRepository(new WorkersInMotionDB()); UserHeartBeat _userHeartBeat = new UserHeartBeat(); _userHeartBeat.HeartBeatGUID = Guid.NewGuid(); _userHeartBeat.UserGUID = UserGUID; _userHeartBeat.Latitude = HeartBeatRequest.latitude; _userHeartBeat.Longitude = HeartBeatRequest.longitude; _userHeartBeat.HeartBeatTime = HeartBeatRequest.time; _userHeartBeat.CreateDate = DateTime.UtcNow; _userHeartBeat.CreateBy = UserGUID; result = _IUserRepository.InsertUserHeartBeat(_userHeartBeat); //result = _IUserRepository.Save(); return(result); } catch (Exception ex) { return(0); } }
public HeartBeatResponse(QRSession session, HeartBeatRequest request) : base(request) { RemoteIP = HtonsExtensions.EndPointToIP(session.RemoteEndPoint); RemotePort = HtonsExtensions.EndPointToPort(session.RemoteEndPoint); PacketType = QRPacketType.Challenge; }
public HeartBeatHandler(ISession session, IRequest request) : base(session, request) { _request = (HeartBeatRequest)request; }
public HeartBeatResponse(HeartBeatRequest request, HeartBeatResult result) : base(request, result) { }
public override Task <Empty> HeartBeat(HeartBeatRequest request, ServerCallContext context) { return(Task.FromResult(ExecuteHeartbeat(request))); }
public int PostHeartBeat(HeartBeatRequest HeartBeatRequest, Guid UserGUID) { try { int result = 0; IUserRepository _IUserRepository; _IUserRepository = new UserRepository(new WorkersInMotionDB()); UserHeartBeat _userHeartBeat = new UserHeartBeat(); _userHeartBeat.HeartBeatGUID = Guid.NewGuid(); _userHeartBeat.UserGUID = UserGUID; _userHeartBeat.Latitude = HeartBeatRequest.latitude; _userHeartBeat.Longitude = HeartBeatRequest.longitude; _userHeartBeat.HeartBeatTime = HeartBeatRequest.time; _userHeartBeat.CreateDate = DateTime.UtcNow; _userHeartBeat.CreateBy = UserGUID; result = _IUserRepository.InsertUserHeartBeat(_userHeartBeat); //result = _IUserRepository.Save(); return result; } catch (Exception ex) { return 0; } }
private IAsyncResult BeginHeartBeat(DateTime releaseTicks, AsyncCallback callback, object state) { HeartBeatRequest heartBeatRequest = new HeartBeatRequest(releaseTicks); return(this.Transmit(heartBeatRequest.Serialize(), callback, state)); }