IM 即时通讯 (442)
Android (209)
- 初始化&链接 (8)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (16)
- 聊天会话 (26)
- 消息处理 (35)
- 自定义消息 (6)
- 音视频 (2)
- 推送&通知 (34)
- 扩展功能 (4)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (3)
- 其他 (43)
iOS (168)
- SDK 导入 (10)
- 连接 (8)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (44)
- 消息处理 (26)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (5)
- 国际化 (4)
- 音视频 (3)
- 其他 (22)
Web (36)
Server (29)
通知概念
通知概念, Push 通知和本地通知的区分
发布时间: 2019-02-27 18:41
回答:
通知概念
SDK 中的长连接通道
融云 SDK 中存在两种长连接通道:
当调用连接方法后, 应用连接到融云服务器, 并与融云服务器保持着用于消息的发送与接收的长连接, 我们称之为 IM 连接通道。
当应用的主进程被杀死或者回收,或者您主动调用 disconnect() 跟融云断开(IM)连接后。此时,融云会通过一个后台服务保持一条推送长连接,跟融云服务器保持连接,我们称之为 Push 连接通道。
通知
下面为 SDK 的通知流程分发图:
通过上图我们可以了解到, 通知分为两类:
Push 通知: Push 通知是当接收方的主进程被杀死或者回收,或者您主动调用 disconnect() 的操作, 导致 IM 长连接通道与服务器断开后。 在这种情况下,服务器会检查 Push 通道是否存在,如果存在,则会通过 Push 通道推送消息。此时你会收到实时的推送。推送的内容是包含消息内容的数据。
本地通知
接收方应用被压入后台(应用没有被真实杀死或回收, 也没有调用disconnect()),IM 连接通道此时还存在, 则将不会走 Push 推送。而是正常走 IM 通道的消息接受回调方法。所以需要在回掉方法实现 Notification 的通知提示, 此通知我们可以称之为本地通知。
如果你集成的是 IMKit , 则内部已经实现了通知提示。 否则需自己实现 Notification 通知。
注意 : 有些模拟器和真机, 在清理后台应用, 应用看着貌似杀掉了,但其实只是清理了UI界面, 但 IM 连接通道没 有断开, 所以是不会走 Push 推送通道的。