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