示例#1
0
        /// <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);
        }
示例#2
0
        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()
            }));
            // }
        }