Example #1
0
        /// <summary>
        /// 向某用户的客户端推送系统消息
        /// </summary>
        /// <param name="p_userID"></param>
        /// <param name="p_msg"></param>
        /// <returns>true 在线推送</returns>
        public async Task <bool> SendMsg(long p_userID, string p_msg)
        {
            var result = await MsgKit.Push(new List <long> {
                p_userID
            }, WrapperMsg(p_msg));

            return(result.Count > 0);
        }
Example #2
0
File: CmdMsg.cs Project: Daoting/dt
        /// <summary>
        /// 向某用户的客户端推送指令信息
        /// </summary>
        /// <param name="p_userID"></param>
        /// <param name="p_msg"></param>
        /// <returns>true 在线推送</returns>
        public async Task <bool> SendCmd(long p_userID, MsgInfo p_msg)
        {
            var result = await MsgKit.Push(new List <long> {
                p_userID
            }, p_msg);

            return(result.Count > 0);
        }
Example #3
0
        /// <summary>
        /// 向某用户的客户端推送聊天信息,可通过指定LetterInfo.LetterType为Undo撤回信息
        /// </summary>
        /// <param name="p_userID">目标用户</param>
        /// <param name="p_letter">聊天信息</param>
        /// <returns>true 在线推送</returns>
        public async Task <bool> SendLetter(long p_userID, LetterInfo p_letter)
        {
            var result = await MsgKit.Push(new List <long> {
                p_userID
            }, WrapperLetter(p_letter));

            return(result.Count > 0);
        }
Example #4
0
        /// <summary>
        /// 向某在线用户的发送WebRTC的offer信息
        /// </summary>
        /// <param name="p_fromUserID">发送者</param>
        /// <param name="p_toUserID">接收者</param>
        /// <param name="p_offer">offer内容</param>
        /// <returns>true 在线发送成功,false对方不在线</returns>
        public Task <bool> SendRtcOffer(long p_fromUserID, long p_toUserID, string p_offer)
        {
            var mi = new MsgInfo
            {
                MethodName = "WebRtcApi.RecvRtcOffer",
                Params     = new List <object> {
                    p_fromUserID, p_offer
                },
            };

            return(MsgKit.PushIfOnline(p_toUserID, mi));
        }
Example #5
0
        /// <summary>
        /// 拒绝接受某用户的 WebRTC 连接请求
        /// </summary>
        /// <param name="p_fromUserID">发送者</param>
        /// <param name="p_toUserID">接收者</param>
        /// <returns></returns>
        public Task <bool> RefuseRtcConnection(long p_fromUserID, long p_toUserID)
        {
            var mi = new MsgInfo
            {
                MethodName = "WebRtcApi.RefuseRtcConnection",
                Params     = new List <object> {
                    p_fromUserID
                },
            };

            return(MsgKit.PushIfOnline(p_toUserID, mi));
        }
Example #6
0
        /// <summary>
        /// 挂断电话
        /// </summary>
        /// <param name="p_fromUserID">发送者</param>
        /// <param name="p_toUserID">接收者</param>
        /// <param name="p_toCaller">是否发送给Caller</param>
        /// <returns>true 在线发送成功,false对方不在线</returns>
        public Task <bool> HangUp(long p_fromUserID, long p_toUserID, bool p_toCaller)
        {
            var mi = new MsgInfo
            {
                MethodName = "WebRtcApi.HangUp",
                Params     = new List <object> {
                    p_fromUserID, p_toCaller
                },
            };

            return(MsgKit.PushIfOnline(p_toUserID, mi));
        }
Example #7
0
        /// <summary>
        /// 向某在线用户的发送 WebRTC 的 IceCandidate 信息
        /// </summary>
        /// <param name="p_fromUserID">发送者</param>
        /// <param name="p_toUserID">接收者</param>
        /// <param name="p_iceCandidate"></param>
        /// <param name="p_toCaller">是否发送给Caller</param>
        /// <returns>true 在线发送成功,false对方不在线</returns>
        public Task <bool> SendIceCandidate(long p_fromUserID, long p_toUserID, string p_iceCandidate, bool p_toCaller)
        {
            var mi = new MsgInfo
            {
                MethodName = "WebRtcApi.RecvIceCandidate",
                Params     = new List <object> {
                    p_fromUserID, p_iceCandidate, p_toCaller
                },
            };

            return(MsgKit.PushIfOnline(p_toUserID, mi));
        }
Example #8
0
        /// <summary>
        /// 发布订阅信息
        /// </summary>
        /// <param name="p_subscribeID">订阅号标识</param>
        /// <param name="p_msg">信息内容</param>
        /// <param name="p_offlineTip">离线推送时的提示信息</param>
        /// <returns>在线收到的人数</returns>
        public async Task <int> Publish(long p_subscribeID, string p_msg, string p_offlineTip)
        {
            string      key   = "msg:Subscribe:" + p_subscribeID.ToString();
            List <long> users = await Kit.ListRange <long>("msg:Subscribe", p_subscribeID);

            if (users == null || users.Count == 0)
            {
                return(0);
            }

            var mi = new MsgInfo
            {
                MethodName = "",
                Params     = new List <object> {
                    p_subscribeID, p_msg
                },
                Title   = "订阅信息",
                Content = p_offlineTip
            };
            var result = await MsgKit.Push(users, mi);

            return(result.Count);
        }
Example #9
0
File: CmdMsg.cs Project: Daoting/dt
 /// <summary>
 /// 向用户列表的所有客户端推送指令信息
 /// </summary>
 /// <param name="p_userIDs">用户列表</param>
 /// <param name="p_msg">待推送信息</param>
 /// <returns>在线推送列表</returns>
 public Task <List <long> > BatchSendCmd(List <long> p_userIDs, MsgInfo p_msg)
 {
     return(MsgKit.Push(p_userIDs, p_msg));
 }
Example #10
0
 /// <summary>
 /// 向用户列表的所有客户端推送聊天信息,可通过指定LetterInfo.LetterType为Undo撤回信息
 /// </summary>
 /// <param name="p_userIDs">用户列表</param>
 /// <param name="p_letter">聊天信息</param>
 /// <returns>在线推送列表</returns>
 public Task <List <long> > BatchSendLetter(List <long> p_userIDs, LetterInfo p_letter)
 {
     return(MsgKit.Push(p_userIDs, WrapperLetter(p_letter)));
 }
Example #11
0
 /// <summary>
 /// 向所有副本的所有在线用户广播信息
 /// </summary>
 /// <param name="p_msg"></param>
 public void SendMsgToOnline(string p_msg)
 {
     _ = MsgKit.BroadcastAllOnline(WrapperMsg(p_msg));
 }
Example #12
0
 /// <summary>
 /// 向用户列表的所有客户端推送系统消息
 /// </summary>
 /// <param name="p_userIDs">用户列表</param>
 /// <param name="p_msg">待推送信息</param>
 /// <returns>在线推送列表</returns>
 public Task <List <long> > BatchSendMsg(List <long> p_userIDs, string p_msg)
 {
     return(MsgKit.Push(p_userIDs, WrapperMsg(p_msg)));
 }