通知(Notification)是通过三方通道(APNs、小米推送、华为推送等)推送到用户手机端的消息,收到后会产生弹窗提示,一般作用于应用后台。直播互动提供消息通知,本文介绍通知功能的实现流程。

目前AIMPaaS是由AppServer订阅通知事件,经过推送前置逻辑判断,业务根据自己需要推送至三方推送服务。后续会支持直接由AIMServer推送给三方推送服务。通知实现流程
推送前置逻辑一般包含如下步骤:
  1. 判定是否推送
  2. 选择推送通道

判定是否推送

通知事件包含了消息接收者当时的在线状态信息,AppServer收到后一般有以下几种情况:
  • 免打扰:会话被设置为免打扰,则直接忽略。
  • PC端在线:说明消息已在线下行至PC端,移动端离线状态,是否通过三方通道推送给移动端取决于业务侧的产品设计,比较常见钉钉、千牛和微信一般由一个用户设置项来决定。
  • 移动端在线:说明消息已在线下行至PC端,因为PC端不支持推送,这种情况一般不需要推送。
  • PC端和移动端都在线:说明消息已在线下行至PC端和移动端,这种情况一般不需要推送。

选择推送通道

主流的手机厂商支持推送通道,苹果APNs、小米推送、华为推送、Google GCM、OPPO和VIVO推送通道,推送服务会维护用户ID→推送通道ID、deviceToken的映射关系,不同业务映射关系有些差别,可分为以下两种:
  • 1→1:一一对应,用户新设备登录会将老映射关系删除,这种情况一般是移动端互踢的,仅允许一个移动端同时在线,所以不存在选择通道的问题,直接推送至查询到映射关系的通道即可。
  • 1→N:一对多,如果是业务选择了支持多个设备同时登录,一般选择同时推送,也可根据自己业务特点选择其中一个;否则,只选择推送最近登录的设备。