public JsonResult GetNewMessages() { if (Session["Account"] == null) { return(Json("overtime", JsonRequestBehavior.AllowGet)); } StringBuilder sbid = new StringBuilder(); StringBuilder sbname = new StringBuilder(); List <MIS_WebIM_SenderModel> senderList = messageBLL.GetSenderByReceiver(GetUserId()); if (senderList != null) { foreach (MIS_WebIM_SenderModel model in senderList) { sbid.Append(model.Sender + ","); sbname.Append(model.SenderTitle + ","); } } //获取消息总数 int mesCount = senderList.Sum(a => a.MessageCount); OnlineHttpModule.ProcessRequest(); //格式 //在线人数 OnlineUserRecorder recorder = HttpContext.Cache[OnlineHttpModule.g_onlineUserRecorderCacheKey] as OnlineUserRecorder; return(Json(JsonHandler.CreateMessage(recorder.GetUserList().Count, sbid.ToString() + "|" + sbname.ToString(), mesCount.ToString()), JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { if (Session["Account"] != null) { //获取是否开启WEBIM ViewBag.IsEnable = siteConfig.webimstatus; //获取信息间隔时间 ViewBag.NewMesTime = siteConfig.refreshnewmessage; //系统名称 ViewBag.WebName = siteConfig.webname; //公司名称 ViewBag.ComName = siteConfig.webcompany; //网站标题 ViewBag.Title = siteConfig.webtitle; //版权 ViewBag.CopyRight = siteConfig.webcopyright; //在线人数 OnlineUserRecorder recorder = HttpContext.Cache[OnlineHttpModule.g_onlineUserRecorderCacheKey] as OnlineUserRecorder; ViewBag.OnlineCount = recorder.GetUserList().Count; Account account = new Account(); account = (Account)Session["Account"]; return(View(account)); } else { return(RedirectToAction("Index", "Account")); } }
//判断用户是否在线 public string SetOnlineIcon(string id, OnlineUserRecorder recorder) { if (recorder == null) { return("fa fa-user color-gray"); } // 绑定在线用户列表 IList <OnlineUser> userList = recorder.GetUserList(); bool b = false; foreach (var OnlineUser in userList) { if (id == OnlineUser.UserName) { b = true; } } if (b) { return("fa fa-user color-green"); } else { return("fa fa-user color-gray"); } }
public static int GetDummyUniqueID(int minId) { // 获取在线用户记录器 OnlineUserRecorder recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; if (recorder == null) { Register(); recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; } int minDummyUniqueID = minId; var dummyUsers = recorder.GetUserList().Where(u => u.UniqueID >= minId).OrderBy(u => u.UniqueID).ToList(); for (var i = 0; i < dummyUsers.Count; i++) { if (i < dummyUsers.Count - 1) { // 两个用户之间的UniqueID差 > 1 if (dummyUsers[i + 1].UniqueID - dummyUsers[i].UniqueID > 1) { minDummyUniqueID = dummyUsers[i].UniqueID; break; } } else { minDummyUniqueID = dummyUsers[i].UniqueID; } } return(minDummyUniqueID + 1); }
public JsonResult GetPartData6() { // 获取在线用户记录器 OnlineUserRecorder recorder = HttpContext.Cache[OnlineHttpModule.g_onlineUserRecorderCacheKey] as OnlineUserRecorder; StringBuilder sb = new StringBuilder(""); if (recorder == null) { return(Json("在线用户", JsonRequestBehavior.AllowGet)); } //// 绑定在线用户列表 IList <OnlineUser> userList = recorder.GetUserList(); sb.AppendFormat("在线用户:<br>"); foreach (var OnlineUser in userList) { sb.AppendFormat(OnlineUser.UserName + "<br>"); } return(Json(sb.ToString(), JsonRequestBehavior.AllowGet)); }