public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { case MqKeyword.MinerClientWsClosedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqEvent(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientsWsBreathedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid[] clientIds = MinerClientMqBodyUtil.GetClientIdsMqReciveBody(ea.Body); if (clientIds != null && clientIds.Length != 0) { VirtualRoot.RaiseEvent(new MinerClientsWsBreathedMqEvent(appId, clientIds, timestamp)); } } break; default: return(false); } return(true); }
public override void Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { // 上报的算力放在这里消费,因为只有WebApiServer消费该类型的消息,WsServer不消费该类型的消息 case MqKeyword.SpeedRoutingKey: { Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerIp = ea.BasicProperties.ReadHeaderString(MqKeyword.MinerIpHeaderName); VirtualRoot.RaiseEvent(new SpeedDataMqMessage(appId, clientId, minerIp, timestamp)); } break; case MqKeyword.MinerClientWsOpenedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsOpenedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientWsClosedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.MinerClientWsBreathedRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsBreathedMqMessage(appId, clientId, timestamp)); } } break; case MqKeyword.ChangeMinerSignRoutingKey: { MinerSign minerSign = MinerClientMqBodyUtil.GetChangeMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.Execute(new ChangeMinerSignMqMessage(minerSign)); } } break; default: break; } }
public override bool Go(BasicDeliverEventArgs ea) { switch (ea.RoutingKey) { // 上报的算力放在这里消费,因为只有WebApiServer消费该类型的消息,WsServer不消费该类型的消息 case MqKeyword.SpeedRoutingKey: { Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string minerIp = ea.BasicProperties.ReadHeaderString(MqKeyword.MinerIpHeaderName); VirtualRoot.RaiseEvent(new SpeedDataMqEvent(appId, clientId, minerIp, timestamp)); } break; case MqKeyword.ChangeMinerSignRoutingKey: { string appId = ea.BasicProperties.AppId; MinerSign minerSign = MinerClientMqBodyUtil.GetChangeMinerSignMqReceiveBody(ea.Body); if (minerSign != null) { VirtualRoot.Execute(new ChangeMinerSignMqCommand(appId, minerSign)); } } break; case MqKeyword.QueryClientsForWsRoutingKey: { DateTime timestamp = Timestamp.FromTimestamp(ea.BasicProperties.Timestamp.UnixTime); string appId = ea.BasicProperties.AppId; string mqMessageId = ea.BasicProperties.MessageId; string loginName = ea.BasicProperties.ReadHeaderString(MqKeyword.LoginNameHeaderName); string sessionId = ea.BasicProperties.ReadHeaderString(MqKeyword.SessionIdHeaderName); QueryClientsForWsRequest query = MinerClientMqBodyUtil.GetQueryClientsForWsMqReceiveBody(ea.Body); if (query != null) { VirtualRoot.Execute(new QueryClientsForWsMqCommand(appId, mqMessageId, timestamp, loginName, sessionId, query)); } } break; default: return(false); } return(true); }
protected override Dictionary <string, Action <BasicDeliverEventArgs> > GetPaths() { return(new Dictionary <string, Action <BasicDeliverEventArgs> > { [MqKeyword.MinerClientWsClosedRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; Guid clientId = MinerClientMqBodyUtil.GetClientIdMqReciveBody(ea.Body); if (clientId != Guid.Empty) { VirtualRoot.RaiseEvent(new MinerClientWsClosedMqEvent(appId, clientId, ea.GetTimestamp())); } }, [MqKeyword.MinerClientsWsBreathedRoutingKey] = ea => { string appId = ea.BasicProperties.AppId; Guid[] clientIds = MinerClientMqBodyUtil.GetClientIdsMqReciveBody(ea.Body); if (clientIds != null && clientIds.Length != 0) { VirtualRoot.RaiseEvent(new MinerClientsWsBreathedMqEvent(appId, clientIds, ea.GetTimestamp())); } } }); }