断开连接
连接融云服务后,在需要用户切换、用户注销的操作时,可通过下面方法断开与融云的 IM 连接,并可根据此方法来设置在用户断开连接后是否接收消息推送。
提示
SDK 在前后台切换或者网络出现异常时会自动重连,保证连接的可靠性。除 App 逻辑需要登出,否则不需要调用此方法手动断开连接。
断开连接(允许推送)
主动断开与融云服务端的 IM 连接,并设置断开连接后允许融云服务端进行远程推送。以下两种方式效果一致:
参数说明
参数 | 类型 | 说明 |
---|---|---|
isReceivePush | BOOL | 断开连接后,是否允许融云服务端进行远程推送。 YES 表示接收远程推送。NO 表示不接收远程推送。 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] disconnect];
或者:
Objective C
[[RCCoreClient sharedCoreClient] disconnect:YES];
如果融云服务端检测到 App 客户端不在线(默认要求全部设备已下线),在接收新消息时,融云服务端会为该用户记录一条离线消息?,并同时触发融云服务端的推送服务。如您同时集成了融云提供的厂商推送通道,融云服务端会通过推送通道下发一条推送信息到客户端 SDK。该提醒一般以通知形式展示在通知面板,提示用户有离线消息。
断开连接(不允许推送)
需要注销登录(登出)或切换 App 用户账号时,推荐调用以下方法主动断开与融云服务端的 IM 连接,并设置断开连接后不允许融云服务端进行远程推送。以下两种方式效果一致:
参数说明
参数 | 类型 | 说明 |
---|---|---|
isReceivePush | BOOL | 断开连接后,是否允许融云服务端进行远程推送。 YES 表示接收远程推送。NO 表示不接收远程推送。 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] logout];
或者:
Objective C
[[RCCoreClient sharedCoreClient] disconnect:NO];
断开连接且不允许推送的情况下,融云服务端仅记录离线消息,但不会为当前设备触发推送服务。如果用户登录了多个设备,则在其他设备中最后一个登录的设备上可正常接收推送。在多设备场景下,App 如需保证设备间消息记录一致,可通过开启多设备消息同步实现。详见多设备消息同步。