Exemplo n.º 1
0
        /// <summary>
        /// 更新群信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="info"></param>
        /// <param name="action"></param>
        public static void UpdateTeamInfo(string tid, NIMTeamInfo info, TeamChangedNotificationDelegate action)
        {
            var ptr      = NimUtility.DelegateConverter.ConvertToIntPtr(action);
            var infoJson = info.Serialize();

            TeamNativeMethods.nim_team_update_team_info_async(tid, infoJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 将用户踢下线
        /// </summary>
        /// <param name="tid">群id</param>
        /// <param name="idList">被踢用户id 列表</param>
        /// <param name="action"></param>
        public static void KickMemberOutFromTeam(string tid, string[] idList, TeamChangedNotificationDelegate action)
        {
            var idJson = NimUtility.Json.JsonParser.Serialize(idList);
            var ptr    = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_kick_async(tid, idJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 修改其他成员的群昵称
        /// </summary>
        /// <param name="info"></param>
        /// <param name="action"></param>
        public static void UpdateMemberNickName(NIMTeamMemberInfo info, TeamChangedNotificationDelegate action)
        {
            var infoJson = info.Serialize();
            var ptr      = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_update_other_nick_async(infoJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 邀请好友入群
        /// </summary>
        /// <param name="tid">群id</param>
        /// <param name="idList">被邀请人员id列表</param>
        /// <param name="postscript">邀请附言</param>
        /// <param name="action">操作结果回调</param>
        public static void Invite(string tid, string[] idList, string postscript, TeamChangedNotificationDelegate action)
        {
            var idJson = NimUtility.Json.JsonParser.Serialize(idList);
            var ptr    = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_invite_async(tid, idJson, postscript, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 发送群消息已读回执
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="msgs"></param>
        /// <param name="cb"></param>
        public static void MsgAckRead(string tid, List <NIMIMMessage> msgs, TeamChangedNotificationDelegate cb)
        {
            var ptr     = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            var msgJson = NimUtility.Json.JsonParser.Serialize(msgs);

            TeamNativeMethods.nim_team_msg_ack_read(tid, msgJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 删除群管理员
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="managerIdArray"></param>
        /// <param name="action"></param>
        public static void RemoveTeamManagers(string tid, string[] managerIdArray, TeamChangedNotificationDelegate action)
        {
            var ptr          = NimUtility.DelegateConverter.ConvertToIntPtr(action);
            var managersJson = NimUtility.Json.JsonParser.Serialize(managerIdArray);

            TeamNativeMethods.nim_team_remove_managers_async(tid, managersJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 获取群消息未读成员列表
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="msg"></param>
        /// <param name="cb"></param>
        public static void QueryMsgUnreadList(string tid, NIMIMMessage msg, TeamChangedNotificationDelegate cb)
        {
            var ptr     = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
            var msgJson = msg.Serialize();

            TeamNativeMethods.nim_team_msg_query_unread_list(tid, msgJson, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 创建群
        /// </summary>
        /// <param name="teamInfo">群组信息</param>
        /// <param name="idList">成员id列表(不包括自己)</param>
        /// <param name="postscript">附言</param>
        /// <param name="action"></param>
        public static void CreateTeam(NIMTeamInfo teamInfo, string[] idList, string postscript, TeamChangedNotificationDelegate action)
        {
            var tinfoJson = teamInfo.Serialize();
            var idJson    = NimUtility.Json.JsonParser.Serialize(idList);
            var ptr       = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_create_team_async(tinfoJson, idJson, postscript, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 查询所有群信息,包含无效的群
        /// </summary>
        /// <param name="action"></param>
        public static void QueryAllMyTeamsInfo(QueryMyTeamsInfoResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);
            Dictionary <string, object> extDic = new Dictionary <string, object>();

            extDic["include_invalid"] = true;
            var ext = NimUtility.Json.JsonParser.Serialize(extDic);

            TeamNativeMethods.nim_team_query_all_my_teams_info_async(ext, _queryAllMyTeamsInfoCompleted, ptr);
        }
Exemplo n.º 10
0
        /// <summary>
        ///查询群成员信息
        /// </summary>
        /// <param name="tid">群ID</param>
        /// <param name="includeMemberInfo">是否查询成员详细信息</param>
        /// <param name="includeInvalidMember">是否包含无效成员</param>
        /// <param name="action"></param>
        public static void QueryTeamMembersInfo(string tid, bool includeMemberInfo, bool includeInvalidMember, QueryTeamMembersInfoResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);
            Dictionary <string, object> extDic = new Dictionary <string, object>();

            extDic["include_invalid"] = includeInvalidMember;
            var ext = NimUtility.Json.JsonParser.Serialize(extDic);

            TeamNativeMethods.nim_team_query_team_members_async(tid, includeMemberInfo, ext, _queryTeamMembersCompleted, ptr);
        }
Exemplo n.º 11
0
 public static void RegisterCallbacks()
 {
     _teamEventNotificationDelegate = new TeamEventDelegate(NotifyTeamEvent);
     _teamChangedCallback           = new TeamOperationDelegate(OnTeamChanged);
     _queryAllMyTeamsCompleted      = new QueryMyTeamsDelegate(OnQueryAllMyTeamsCompleted);
     _queryMyTeamsInfoCompleted     = new QueryMyTeamsDetailInfoDelegate(OnQueryMyTeamsInfoCompleted);
     _queryAllMyTeamsInfoCompleted  = new QueryMyTeamsDetailInfoDelegate(OnQueryAllMyTeamsInfoCompleted);
     _queryTeamMembersCompleted     = new QueryTeamMembersDelegate(OnQueryTeamMembersInfoCompleted);
     _querySingleMemberCompleted    = new QuerySingleMemberDelegate(OnQuerySingleMemberCompleted);
     _queryCachedTeamInfoCompleted  = new QueryTeamInfoDelegate(OnQueryCachedTeamInfoCompleted);
     TeamNativeMethods.nim_team_reg_team_event_cb(null, _teamEventNotificationDelegate, IntPtr.Zero);
 }
Exemplo n.º 12
0
        /// <summary>
        /// 查询(单个)群成员信息(同步版本,堵塞NIM内部线程,谨慎使用)
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="uid"></param>
        /// <returns></returns>
        public static NIMTeamMemberInfo QuerySingleMemberInfo(string tid, string uid)
        {
            NIMTeamMemberInfo info = null;
            var ptr = TeamNativeMethods.nim_team_query_team_member_block(tid, uid);

            if (ptr != IntPtr.Zero)
            {
                NimUtility.Utf8StringMarshaler marshaler = new NimUtility.Utf8StringMarshaler();
                var infoObj = marshaler.MarshalNativeToManaged(ptr);
                info = NIMTeamMemberInfo.Deserialize(infoObj.ToString());
                GlobalAPI.FreeStringBuffer(ptr);
            }
            return(info);
        }
Exemplo n.º 13
0
        /// <summary>
        /// 本地查询群信息(同步版本,堵塞NIM内部线程,谨慎使用)
        /// </summary>
        /// <param name="tid"></param>
        /// <returns></returns>
        public static NIMTeamInfo QueryCachedTeamInfo(string tid)
        {
            var ptr = TeamNativeMethods.nim_team_query_team_info_block(tid);

            if (ptr != IntPtr.Zero)
            {
                NimUtility.Utf8StringMarshaler marshaler = new NimUtility.Utf8StringMarshaler();
                var tobj  = marshaler.MarshalNativeToManaged(ptr);
                var tinfo = NIMTeamInfo.Deserialize(tobj.ToString());
                GlobalAPI.FreeStringBuffer(ptr);
                return(tinfo);
            }
            return(null);
        }
Exemplo n.º 14
0
        /// <summary>
        /// 对群禁言/解除禁言
        /// </summary>
        /// <param name="tid">群组ID</param>
        /// <param name="value">禁言(true)或解除禁言(false)</param>
        /// <param name="cb">操作结果回调</param>
        public static void MuteTeam(string tid, bool value, TeamChangedNotificationDelegate cb)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);

            TeamNativeMethods.nim_team_mute_async(tid, value, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 15
0
        /// <summary>
        /// 在自己加的所有群里,查找自己在每个群里的成员信息
        /// </summary>
        /// <param name="cb"></param>
        public static void QueryMyInfoInEachTeam(QueryMyInfoInEachTeamDelegate cb)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);

            TeamNativeMethods.nim_team_query_my_all_member_infos_async(null, QueryMyAllMemberInfoCallback, ptr);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 获取群禁言成员列表
        /// </summary>
        /// <param name="tid">群组id</param>
        /// <param name="cb">回调函数</param>
        public static void QueryMutedListOnlineAsync(string tid, QueryTeamMutedListDelegate cb)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);

            TeamNativeMethods.nim_team_query_mute_list_online_async(tid, null, QueryMutedListOnlineCb, ptr);
        }
Exemplo n.º 17
0
        public static void SetMemberMuted(string tid, string memberId, bool muted, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_mute_member_async(tid, memberId, muted, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 18
0
        /// <summary>
        /// 查询本地缓存的群信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="action"></param>
        public static void QueryCachedTeamInfo(string tid, QueryCachedTeamInfoResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_query_team_info_async(tid, null, _queryCachedTeamInfoCompleted, ptr);
        }
Exemplo n.º 19
0
        /// <summary>
        /// 在线查询群信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="action"></param>
        public static void QueryTeamInfoOnline(string tid, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_query_team_info_online_async(tid, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 20
0
 private static void RegTeamEventCb()
 {
     TeamNativeMethods.nim_team_reg_team_event_cb(null, TeamEventNotificationDelegate, IntPtr.Zero);
 }
Exemplo n.º 21
0
        /// <summary>
        /// 移交群主
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="newOwnerId"></param>
        /// <param name="leaveTeam">是否在移交后退出群</param>
        /// <param name="action"></param>
        public static void TransferTeamAdmin(string tid, string newOwnerId, bool leaveTeam, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_transfer_team_async(tid, newOwnerId, leaveTeam, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 查询(单个)群成员信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="uid"></param>
        /// <param name="action"></param>
        public static void QuerySingleMemberInfo(string tid, string uid, QuerySingleMemberResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_query_team_member_async(tid, uid, null, _querySingleMemberCompleted, ptr);
        }
Exemplo n.º 23
0
        /// <summary>
        /// 解散群组
        /// </summary>
        /// <param name="tid">群id</param>
        /// <param name="action">操作结果回调函数</param>
        public static void DismissTeam(string tid, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_dismiss_async(tid, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 查询群成员信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="action"></param>
        public static void QueryTeamMembersInfo(string tid, QueryTeamMembersInfoResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_query_team_members_async(tid, true, null, QueryTeamMembersCompleted, ptr);
        }
Exemplo n.º 25
0
        /// <summary>
        /// 查询自己的群
        /// </summary>
        /// <param name="action"></param>
        public static void QueryAllMyTeams(QueryMyTeamsResultDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_query_all_my_teams_async(null, _queryAllMyTeamsCompleted, ptr);
        }
Exemplo n.º 26
0
        /// <summary>
        /// 拒绝入群邀请
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="invitor"></param>
        /// <param name="reason"></param>
        /// <param name="action"></param>
        public static void RejectTeamInvitation(string tid, string invitor, string reason, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_reject_invitation_async(tid, invitor, reason, null, _teamChangedCallback, ptr);
        }
Exemplo n.º 27
0
        /// <summary>
        /// 申请入群
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="reason"></param>
        /// <param name="action"></param>
        public static void ApplyForJoiningTeam(string tid, string reason, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_apply_join_async(tid, reason, null, TeamChangedCallback, ptr);
        }
Exemplo n.º 28
0
        /// <summary>
        /// 拒绝入群申请
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="uid"></param>
        /// <param name="reason"></param>
        /// <param name="action"></param>
        public static void RejectJoinTeamApplication(string tid, string uid, string reason, TeamChangedNotificationDelegate action)
        {
            var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action);

            TeamNativeMethods.nim_team_reject_join_apply_async(tid, uid, reason, null, _teamChangedCallback, ptr);
        }