引用:椎锋陷陈 发表于 2021-08-28 10:28 3个方案都集成了,那就放心多了 |
引用:JackJiang 发表于 2021-08-28 10:25 确实,这是面对现在的Android生态无奈的选择,但对一个IM应用来说,消息的可达性是最需要保障的点,权衡之下还是得这么做。 |
引用:椎锋陷陈 发表于 2021-08-28 10:17 你厉害,这3种方式都集成在一个app里的话,光这一块引用的sdk库就很大了吧 |
作为一名曾经接触过IM开发的Android开发者,我想说各种方式的推送我们都尝试过,这里以一个客户端开发人员的角度讲一下各种方式的优劣: 自建长连接通道 自己与服务端建立并维护长连接,需要自己设计开发连接建立、心跳机制、重连机制、消息队列、数据传输解析等功能。 优点是当长连接正常时消息最及时,消息解析的灵活度也最高。 缺点就是实现难度最大,要应对网络、电量、内存等变化对于长连接维持的影响。 集成厂商推送通道SDK 直接对接各个厂商提供的推送通道SDK,缺点自然是每个厂商推送通道SDK的API都不同,集成步骤较为繁琐。 优点是消息到达率最高,对透传类型的消息支持也更好。 集成第三方推送平台SDK 原理是由第三方推送平台SDK自建的长连接通道来维持消息的收发,成功率取决于设备中集成该平台SDK的APP数量。 平台SDK会选择依赖于当前正在运行或存活几率较高的APP建立长连接,并为其他集成该平台SDK的APP提供推送代理。 同时也会与厂商有合作,当自建的长连接通道不可行时就会转由厂商通道推送。 优点就是集成步骤较简单,只需要对接第三方推送平台SDK的API即可。 缺点就是对于透传类型的消息支持较差,通知栏类型消息的消息到达率就比较高。 为了最大限度提高推送的到达率和及时率,以上三种方式其实我们都集成了。 |
引用:a835029688 发表于 2021-07-13 10:36 1、他们都提供了自已的sdk,通过sdk集成; 2、你看看这个:https://dev.mi.com/console/appservice/push.html 3、厂商的sdk里是有机制可以自动做到的,你着重看一下华为和小米 |
您好。您在文中提到 国内的几大厂商(小米、华为、魅族、OPPO、vivo等)都有自己官方的推送通道,但是每一家接口都不一样,所以一些厂商比如小米、个推提供集成接口。发送时推送系统发给集成商,然后集成商根据具体的设备,发给具体的厂商推送通道,最终发给用户。 因为没有场景实践,有一些不懂的地方。 1.这些推送的通道是通过什么方式集成的呢? 2.小米的这个推送,有没有地方可以自行测试呢? 3.一个app如何知道是哪一种方式推送,然后接收对应的消息呢? 问题有点白痴,希望您可以解答。或者给我一个可以测试这个流程的地方,谢谢了。 |