/// <summary> /// 开始分享 /// </summary> /// <param name="conferenceid"></param> /// <param name="uid"></param> /// <param name="type"></param> /// <returns></returns> public IEnumerable <ConferenceLiveUserModel> CreateOrUpdateConferenceLiveUserList(string conferenceid, string uid, string type) { var list = RedisHelper.Hash_Get <List <ConferenceLiveUserModel> >("A_IM_Conference_OnlineUser_OnLive", conferenceid) ?? new List <ConferenceLiveUserModel>(); var model = list.Find(p => p.uid == uid); if (model != null) { model.type = type; model.datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); } else { var newModel = new ConferenceLiveUserModel { conferenceid = conferenceid, datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"), ext = "", framerate = "", resolution = "", type = type, uid = uid, }; list.Add(newModel); } RedisHelper.Hash_Remove("A_IM_Conference_OnlineUser_OnLive", conferenceid); RedisHelper.Hash_Set("A_IM_Conference_OnlineUser_OnLive", conferenceid, list); //发通知给群里所有人,当前正在分享的人数 Clients.OthersInGroup(conferenceid).notifyOnLiveUsers(list); //记录 RecordUserLive(conferenceid, uid, type, "online"); return(list); }
public void RecordUserLive(string conferenceid, string uid, string type, string ext) { var list = RedisHelper.Hash_Get <List <ConferenceLiveUserModel> >("A_IM_Conference_UserLive_Record", conferenceid) ?? new List <ConferenceLiveUserModel>(); var newModel = new ConferenceLiveUserModel { conferenceid = conferenceid, datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"), ext = ext, framerate = "", resolution = "", type = type, uid = uid, }; list.Add(newModel); RedisHelper.Hash_Remove("A_IM_Conference_UserLive_Record", conferenceid); RedisHelper.Hash_Set("A_IM_Conference_UserLive_Record", conferenceid, list); }
public IHttpActionResult SetOnLiveUser() { string conferenceid = HttpContext.Current.Request.Form["conferenceid"]; string uid = HttpContext.Current.Request.Form["uid"]; string type = HttpContext.Current.Request.Form["type"]; var list = RedisHelper.Hash_Get <List <ConferenceLiveUserModel> >("A_IM_Conference_OnlineUser_OnLive", conferenceid) ?? new List <ConferenceLiveUserModel>(); //if (list.Count >= 4) //{ // var model = list.Where(p => p.uid == uid).FirstOrDefault(); // if (model != null) // { // //已经存在该用户,修改时间 // model.type = type; // model.datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); // //更新数据 // RedisHelper.Hash_Remove("A_IM_Conference_OnlineUser_OnLive", conferenceid); // RedisHelper.Hash_Set("A_IM_Conference_OnlineUser_OnLive", conferenceid, list); // //存在该用户,返回false // return Json(new // { // Success = true, // Content = list, // Error = "", // Message = "", // Count = list.Count(), // Total = list.Count() // }); // } // else // { // //不存在该用户,返回false // return Json(new // { // Success = false, // Content = list, // Error = "", // Message = "", // Count = list.Count(), // Total = list.Count() // }); // } //} //else //{ var model = list.Where(p => p.uid == uid).FirstOrDefault(); if (model != null) { LoggerHelper.Info($"model != null: " + model.uid); model.type = type; model.datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); } else { var newModel = new ConferenceLiveUserModel { conferenceid = conferenceid, datetime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"), ext = "", framerate = "", resolution = "", type = type, uid = uid, }; list.Add(newModel); } //更新数据 RedisHelper.Hash_Remove("A_IM_Conference_OnlineUser_OnLive", conferenceid); RedisHelper.Hash_Set("A_IM_Conference_OnlineUser_OnLive", conferenceid, list); return(Json( new { Success = true, Content = list, Error = "", Message = "", Count = list.Count(), Total = list.Count() })); // } }