/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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))); }
/// <summary> /// 向所有副本的所有在线用户广播信息 /// </summary> /// <param name="p_msg"></param> public void SendMsgToOnline(string p_msg) { _ = MsgKit.BroadcastAllOnline(WrapperMsg(p_msg)); }
/// <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))); }