public void Push(string user, WeixinRequest request) { if (!mCache.ContainsKey(user)) { mCache[user] = new FixedSizedQueue<RequestPing>(4); } }
private ContentResult onWeixinRequestReceived(WeixinRequest reqMsg) { var user = reqMsg.FromUserName; if (reqMsg is TextRequest) { var req = reqMsg as TextRequest; var keyword = req.Content; //ping测试 if (keyword == "@p") { return Content(new TextResponse(user, reqMsg.HowMuchSecondsPassedAfterCreated.ToString()).ToString()); } //web界面登录 else if (keyword == "?") { var rsp = getWebAppRsp(user, Request).ToString(); Console.WriteLine(rsp); return Content(rsp); } //表情的过滤 else if (keyword.StartsWith("/:")) { return Content(new TextResponse(user, keyword).ToString()); } //留言建议 else if (keyword.StartsWith("@")) { return Content(new TextResponse(user, " /::)") { FuncFlag = 1 }.ToString()); } //关注 else if (keyword == "Hello2BizUser") { return onSubscribed(reqMsg); } LibrarySearchOption option; string errMsg; ContentResult result = null; var stopWatch = Stopwatch.StartNew(); if (UserCommand.GetInstance().OnMessage(user, keyword, out option, out errMsg)) { result = Content(Library.GetInstance().GetRspForSearch(Session, Request, option).ToString()); } else { result = Content(new TextResponse(user, errMsg).ToString()); } stopWatch.Stop(); ApplicationLogger.GetLogger().Info("(" + Session.SessionID + ")" + user + " search for " + keyword + " consume " + stopWatch.ElapsedMilliseconds); return result; } else if (reqMsg is EventRequest) { var req = reqMsg as EventRequest; if (req.Event == "subscribe") { return onSubscribed(req); } else if (req.Event == "unsubscribe") { return onUnsubscribed(req); } else { return Content(new TextResponse(user, "暂未支持,敬请期待").ToString()); } } else { return Content(new TextResponse(user, "暂未支持,敬请期待").ToString()); } }
private ContentResult onSubscribed(WeixinRequest reqMsg) { return Content(new TextResponse(reqMsg.FromUserName, Consts.WELCOME).ToString()); }