通知

通知包含在线通知、离线通知、同步通知、其他通知,开发者可以通过注册通知回调函数从而获取通知。返回的通知带有统一的接口体,需要根据类型解析。如下:

    enum NIMSignalingEventType
    {
        kNIMSignalingEventTypeClose            = 1, /**< 返回NIMSignalingNotityInfoClose,支持在线、离线通知 */
        kNIMSignalingEventTypeJoin            = 2, /**< 返回NIMSignalingNotityInfoJoin,支持在线、离线通知 */
        kNIMSignalingEventTypeInvite        = 3, /**< 返回NIMSignalingNotityInfoInvite,支持在线、离线通知 */
        kNIMSignalingEventTypeCancelInvite    = 4, /**< 返回NIMSignalingNotityInfoCancelInvite,支持在线、离线通知 */
        kNIMSignalingEventTypeReject        = 5, /**< 返回NIMSignalingNotityInfoReject,支持在线、多端同步、离线通知 */
        kNIMSignalingEventTypeAccept        = 6, /**< 返回NIMSignalingNotityInfoAccept,支持在线、多端同步、离线通知 */
        kNIMSignalingEventTypeLeave            = 7, /**< 返回NIMSignalingNotityInfoLeave,支持在线、离线通知 */
        kNIMSignalingEventTypeCtrl            = 8, /**< 返回NIMSignalingNotityInfoControl,支持在线通知 */
    };

在线通知

API介绍

注册信令的在线通知回调接口。

API原型

参数说明

参数 类型 说明
cb function 回调函数
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理

返回值说明

无返回值。

示例

多端同步通知

API介绍

注册信令的多端同步通知回调接口,用于通知信令相关的多端同步通知。比如自己在手机端接受邀请,PC端会同步收到这个通知

API原型

参数说明

参数 类型 说明
cb function 回调函数
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理

返回值说明

无返回值。

示例

离线通知

API介绍

注册信令的离线通知回调接口。

API原型

参数说明

参数 类型 说明
cb function 回调函数
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理

返回值说明

无返回值。

示例

    void CallbackSignalingOfflineNotify(std::list<std::shared_ptr<SignalingNotityInfo>> infos)
    {
        for (auto it : infos)
        {
            OnCallbackNotify(it, logtype_offline);
        }
    }
    void init()
    {    
        Signaling::RegOfflineNotifyCb(&CallbackSignalingOfflineNotify);
    }

频道列表同步通知

API介绍

注册信令的频道列表同步回调接口。

在login或者relogin后,会通知该设备账号还未退出的频道列表,用于同步;如果没有在任何频道中,也会返回该同步通知,list为空。

API原型

参数说明

参数 类型 说明
cb function 回调函数
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理

返回值说明

无返回值。

示例

    void CallbackSignalingChannelsNotify(std::list<SignalingChannelDetailedinfo> infos)
    {
        for (auto& it : infos)
        {
            std::string cid = it.channel_info_.channel_id_;
            //AddChannel(&it.channel_info_, &it.members_);
            if (cur_channel_id_ == cid)
            {
                //InitSignalChannel(&it.channel_info_, &it.members_);
            }
        }
    }
    void init()
    {    
        Signaling::RegChannelsSyncCb(&CallbackSignalingChannelsNotify);
    }

频道成员变更同步通知

API介绍

注册信令的频道成员变更同步回调接口。

用于同步频道内的成员列表变更,当前该接口为定时接口,2分钟同步一次,成员有变化时才上报。

由于一些特殊情况,导致成员在离开或掉线前没有主动调用离开频道接口,使得该成员的离开没有对应的离开通知事件,由该回调接口【频道成员变更同步通知】告知用户。

API原型

参数说明

参数 类型 说明
cb function 回调函数
user_data void* 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理

返回值说明

无返回值。

示例

    void CallbackSignalingMembersNotify(SignalingChannelDetailedinfo info)
    {
        std::string cid = info.channel_info_.channel_id_;
        auto channel = FindChannel(cid);
        if (channel)
        {
            channel->info_ = info;
            if (cur_channel_id_ == cid)
            {
                //InitSignalChannel(&channel->info_.channel_info_, &channel->info_.members_);
            }
        }
    }
    void init()
    {    
        Signaling::RegMembersSyncCb(&CallbackSignalingMembersNotify);
    }