예제 #1
0
파일: RoomManager.cs 프로젝트: kbitc/oeip
 /// <summary>
 /// 用户推流记录
 /// </summary>
 /// <param name="connectId"></param>
 /// <param name="index"></param>
 /// <param name="bVideo"></param>
 /// <param name="bAudio"></param>
 /// <returns></returns>
 public bool AddStream(string connectId, int index, bool bVideo, bool bAudio)
 {
     lock (obj)
     {
         User user = getUser(connectId);
         if (user == null)
         {
             LogHelper.LogMessage($"用户{connectId}没有注册,不能添加流.", OeipLogLevel.OEIP_WARN);
             return(false);
         }
         bool bHave = streams.Exists((p) => p.User == user && p.Index == index);
         if (bHave)
         {
             LogHelper.LogMessage($"用户{connectId}已经添加流{index},不能再次添加.", OeipLogLevel.OEIP_WARN);
             return(false);
         }
         if (user != null)
         {
             StreamDesc stream = new StreamDesc();
             stream.bAudio = bAudio;
             stream.bVideo = bVideo;
             stream.Index  = index;
             stream.User   = user;
             streams.Add(stream);
             OnStreamChange(stream, true);
             return(true);
         }
     }
     return(false);
 }
예제 #2
0
파일: RoomManager.cs 프로젝트: kbitc/oeip
        private void OnStreamChange(StreamDesc desc, bool bAdd)
        {
            var amessage = bAdd ? "添加" : "删除";

            LogHelper.LogMessage($"房间 {desc.User.InRoom.Name} {amessage}流,流用户:{desc.User.ConnectId}-流索引:{desc.Index}");
            if (bAdd)
            {
                string pullUri = $"{ desc.User.InRoom.Server }:{ desc.User.InRoom.Port}/live/{desc.User.InRoom.Name}_{desc.User.Id}_{desc.Index}";
                LogHelper.LogMessage($"生成地址:{ pullUri}");
            }
            //OnStreamChangeEvent?.Invoke(desc, bAdd);
            LiveHub.Hub.Clients.Group(desc.User.InRoom.Name)?.OnStreamUpdate(desc.User.Id, desc.Index, bAdd);
        }