Ejemplo n.º 1
0
        /// <summary>
        /// 查询指定事件的全部订阅关系
        /// </summary>
        /// <param name="eventType">事件类型</param>
        /// <param name="cb"></param>
        /// <returns></returns>
        public static bool BatchQuerySubscribe(int eventType, QuerySubscribeDelegate cb)
        {
            if (eventType == 0)
            {
                return(false);
            }
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMSubscribeNativeMethods.nim_batch_query_subscribe_event(eventType, null, BatchQuerySubscribeCallback, ptr);
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 按账号查询指定事件订阅关系
        /// </summary>
        /// <param name="eventType">事件类型</param>
        /// <param name="idList">用户列表</param>
        /// <param name="cb"></param>
        /// <returns></returns>
        public static bool QuerySubscribe(int eventType, List <string> idList, QuerySubscribeDelegate cb)
        {
            if (eventType == 0 || idList == null || idList.Count > 100)
            {
                return(false);
            }
            var json = NimUtility.Json.JsonParser.Serialize(idList);
            var ptr  = DelegateConverter.ConvertToIntPtr(cb);

            NIMSubscribeNativeMethods.nim_query_subscribe_event(eventType, json, null, QuerySubscribeCallback, ptr);
            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 订阅事件
        /// </summary>
        /// <param name="eventType">事件类型</param>
        /// <param name="period">订阅有效期,单位:秒,范围:60s到30天</param>
        /// <param name="syncType">订阅后是否立即同步最新事件,见NIMEventSubscribeSyncType定义</param>
        /// <param name="idList"用户列表></param>
        /// <param name="cb"></param>
        /// <returns></returns>
        public static bool Subscribe(int eventType, long period, NIMEventSubscribeSyncEventType syncType, List <string> idList, SubscribeEventDelegate cb)
        {
            if (eventType == 0 || period == 0 || idList == null || idList.Count > 100)
            {
                return(false);
            }
            var json = NimUtility.Json.JsonParser.Serialize(idList);
            var ptr  = DelegateConverter.ConvertToIntPtr(cb);

            NIMSubscribeNativeMethods.nim_subscribe_event(eventType, period, (int)syncType, json, null, SubscribeEventCallback, ptr);
            return(true);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 发布事件
        /// </summary>
        /// <param name="info">事件信息</param>
        /// <param name="cb"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static bool Publish(NIMEventInfo info, PublishEventDelegate cb, object data = null)
        {
            if ((info.Type == (int)NIMEventType.kNIMEventTypeOnlineState && info.Value >= (int)NIMEventOnlineStateValue.kNIMEventOnlineStateValueCustom) ||
                info.Value >= (int)NIMEventType.kNIMEventTypeCustom)
            {
                var ptr  = DelegateConverter.ConvertToIntPtr(cb);
                var json = info.Serialize();
                NIMSubscribeNativeMethods.nim_publish_event(json, null, PublishResultCallback, ptr);
                return(true);
            }

            return(false);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// (全局回调)统一注册批量接收订阅的事件的回调函数
        /// </summary>
        /// <param name="cb"></param>
        public static void RegBatchPushEventCb(BatchPushEventDelegaet cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMSubscribeNativeMethods.nim_subscribe_event_reg_batch_push_event_cb(null, BatchPushEventCallback, ptr);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// (全局回调)统一注册接收订阅的事件的回调函数
        /// </summary>
        /// <param name="cb"></param>
        public static void RegPushEventCb(PushEventDelegate cb)
        {
            var ptr = DelegateConverter.ConvertToIntPtr(cb);

            NIMSubscribeNativeMethods.nim_subscribe_event_reg_push_event_cb("", PushEventCallback, ptr);
        }