当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

通知概念

通知概念, Push 通知和本地通知的区分
发布时间: 2019-02-27 18:41

回答:

通知概念

SDK 中的长连接通道

融云 SDK 中存在两种长连接通道:

  • 当调用连接方法后, 应用连接到融云服务器, 并与融云服务器保持着用于消息的发送与接收的长连接, 我们称之为 IM 连接通道

  • 当应用的主进程被杀死或者回收,或者您主动调用 disconnect() 跟融云断开(IM)连接后。此时,融云会通过一个后台服务保持一条推送长连接,跟融云服务器保持连接,我们称之为 Push 连接通道

通知

下面为 SDK 的通知流程分发图:

11.png

通过上图我们可以了解到, 通知分为两类:

  • Push 通知:  Push 通知是当接收方的主进程被杀死或者回收,或者您主动调用 disconnect() 的操作, 导致 IM 长连接通道与服务器断开后。 在这种情况下,服务器会检查 Push 通道是否存在,如果存在,则会通过 Push 通道推送消息。此时你会收到实时的推送。推送的内容是包含消息内容的数据。

  • 本地通知

    接收方应用被压入后台(应用没有被真实杀死或回收, 也没有调用disconnect()),IM 连接通道此时还存在,  则将不会走 Push 推送。而是正常走 IM 通道的消息接受回调方法。所以需要在回掉方法实现  Notification 的通知提示, 此通知我们可以称之为本地通知。

    如果你集成的是 IMKit , 则内部已经实现了通知提示。 否则需自己实现 Notification 通知。

    注意 : 有些模拟器和真机, 在清理后台应用, 应用看着貌似杀掉了,但其实只是清理了UI界面, 但 IM 连接通道没       有断开, 所以是不会走 Push 推送通道的。