融云通知逻辑说明

发布时间: 2019-11-13 17:37

回答:

融云通知逻辑说明

概念解释

通知分为远程通知(Push)和本地通知两种:

推送(Push)

是指从服务端实时发送远程通知到客户端,如 APNS(Apple Push Notification Service)、GCM(Google Cloud Messaging) 等服务。在国内,由于谷歌服务不能使用,因此您的应用必须使用第三方或者自己研发的服务来推送。

融云使用长连接技术来实现 IM 服务,和典型的 Push 服务具有相同的长连接机制,所以,开发者也可以直接使用融云来实现推送功能。

本地通知

本地通知指的是您的应用程序在前台、或者在后台但仍然在生命周期存活,此时收到消息,会直接通过前台的应用程序弹出提示窗口。

一、应用切换到手机后台运行时的消息提醒逻辑

Android:

集成 Android IM SDK 并连接到服务器后,客户端会和云端建立两个连接通道:消息通道和推送通道。

  • 1、当应用被切换到手机后台后,SDK 仍然会与服务器保持连接,在未被系统收回进程情况下,通过消息通道接收消息后,以本地通知方式提示。

  • 2、应用长时间在后台运行时,Android 系统会对应用进程进行清理,手机类型不同清理规则也不相同,当应用进程被系统清理杀掉后(消息通道不可用),将通过融云推送通道接收消息推送。此时客户端显示的通知即推送通知。

目前国内各手机厂商对 ROM 进行了深度定制化,应用级别的推送进程基本不可能达到永久保活,所以融云引进了几个主要厂家系统级别的推送,目前支持的第三方推送通道所括:华为、小米、魅族、OPPO、vivo、FCM

注:部分 Android 手机系统在黑屏待机后自动清理后台运行的软件(消息通道和推送通道都不可用),这样影响了应用正常接收新的消息,需要将应用设置为后台运行应用。详细查看文档

iOS:

iOS 端应用切到后台后,手机系统会在一段时间之后将应用进程回收,在回收之前收到的消息都会以本地通知的方式对用户进行提醒,回收后将通过苹果 APNs 服务进行远程推送。

同时,如 App 进入后台两分钟之后,系统未回收应用进程,融云默认也会断开和融云服务器的长连接,通过 APNs 服务进行消息的推送,以保证用户体验。

二、杀掉应用后的通知提醒逻辑

Android:

有新消息时默认通过融云推送通道,向用户进行通知。如客户设置了第三方推送通道,目标手机为对应第三方手机时,则优先走第三方通道进行推送。

iOS:

杀掉应用后,通过 APNs 服务进行消息远程推送。

三、调用 SDK 断开 API 接口后通知逻辑

融云 IM SDK 提供了两个断开连接的方法 logout 和 disconnect

  • logout:当调用此接口断开连接后,仍然可以接收 Push 消息

  • disconnect:断开与融云服务器的连接,并且不再接收 Push 消息

四、如何获取 Push 内容

某些场景中需要在用户点击通知栏后,能够获取到通知内容,方便客户实现自身的业务逻辑处理

五、如何设置不进行消息通知

消息通知设置免打扰功能,支持按单个会话设置消息免打扰和所有会话设置消息免打扰,参考文档:

注:Web 端不支持设置消息免打扰,可以获取到会话的设置状态

六、Web 端在线移动端是否接收 Push 说明

用户之前在移动端登录过,后又在 Web 端登录当前状态为在线,默认情况下,Web 端会直接接收到新的消息,移动端不会收到 Push 提醒。

如需要用户在 Web 端在线时,移动端也收到 Push 提醒,则需要提交工单申请开通。