async Task IMessageSubscriber <RequestEventMessage> .Publish(RequestEventMessage message) { // Accept messages from Middleware. Drop if the message was published from other sources. if (message.EventSource != RequestRecorderMiddleware.EventSourceName) { return; } // Store a record into Redis and publish message to other servers. switch (message.Event) { case RequestEvent.BeginRequest: await AddAsync(message.Value); await _redis.PublishAsync(GetRedisKey(RedisSubscriptionKey), Serialize(new RequestEventMessage(_eventSourceKey, message.Value, RequestEvent.BeginRequest))); break; case RequestEvent.CompleteRequest: await UpdateAsync(message.Value); await _redis.PublishAsync(GetRedisKey(RedisSubscriptionKey), Serialize(new RequestEventMessage(_eventSourceKey, message.Value, RequestEvent.CompleteRequest))); break; } }
public ActionResult Test() { string sMsg = @"<xml><ToUserName><![CDATA[wx42c6025ff9bb2576]]></ToUserName> <FromUserName><![CDATA[15021311065]]></FromUserName> <CreateTime>1478775431</CreateTime> <MsgType><![CDATA[event]]></MsgType> <AgentID>0</AgentID> <Event><![CDATA[unsubscribe]]></Event> <EventKey><![CDATA[]]></EventKey> </xml>"; XDocument doc = XmlHelper.LoadXML(sMsg); LogService.Fatal("msgType: " + JsonHelper.SerializeObject(doc)); RequestMsgType msgType = MsgTypeHelper.GetRequestMsgType(doc); switch (msgType) { case RequestMsgType.Event: RequestEventMessage message = (RequestEventMessage)XmlHelper.Deserialize <RequestEventMessage>(sMsg); //成员关注、取消关注企业号的事件 if (message.Event == "subscribe" || message.Event == "unsubscribe") { var userId = message.FromUserName; //关注状态: 1=已关注,2=已冻结,4=未关注 int status = message.Event == "subscribe" ? 1 : 4; int rows = EmployeeService.UpdateEmpStatus(userId, (byte)status); LogService.Fatal("修改结果: " + rows); } break; } return(Content(sMsg)); }
Task IMessageSubscriber <RequestEventMessage> .Publish(RequestEventMessage message) { switch (message.Event) { case RequestEvent.BeginRequest: AddAsync(message.Value); break; case RequestEvent.CompleteRequest: UpdateAsync(message.Value); break; } return(Task.CompletedTask); }
public ActionResult Index(string msg_signature, string timestamp, string nonce) { string sReqData = StreamHelper.Read(Request.InputStream); WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(); string sMsg = ""; int ret = wxcpt.DecryptMsg(msg_signature, timestamp, nonce, sReqData, ref sMsg); if (ret != 0) { LogService.Fatal("ERR: VerifyURL fail, ret: " + ret); } //LogService.Fatal("解密后的数据: " + sMsg); XDocument doc = XmlHelper.LoadXML(sMsg); RequestMsgType msgType = MsgTypeHelper.GetRequestMsgType(doc); switch (msgType) { case RequestMsgType.Event: RequestEventMessage message = (RequestEventMessage)XmlHelper.Deserialize <RequestEventMessage>(sMsg); //成员关注、取消关注企业号的事件 if (message != null && message.Event == "subscribe" || message.Event == "unsubscribe") { var userId = message.FromUserName; //关注状态: 1=已关注,2=已冻结,4=未关注 int status = message.Event == "subscribe" ? 1 : 4; int rows = EmployeeService.UpdateEmpStatus(userId, (byte)status); //LogService.Fatal("修改结果: " + rows); } break; } return(Content(sMsg)); }