服务上线4年多以来,个推已经服务了逾19万app开发者,35万app,助推了无数著名合作伙伴应用精细化运营。
但是,大多数开发者都不了解,用个推的推送SDK还可以实现IM功能。作为曾经做过IM通讯app的个推团队,满足大部分开发者对于IM的使用需求一定不是问题。目前通过个推SDK实现IM功能的合作伙伴也已经有了一定的规模。

一、 应用场景
已经接入个推SDK的应用中需要实现IM功能,分为客户端A与客户端B。客户端A与B之间相互发送消息,开启单独的聊天模式或者有多个客户端之间使用群聊模式,内容可以是文字富媒体消息:文字,图片,音视频,透传消息等

二、 实现原理:
客户端A向客户端B发送消息的整体流程如下:
1、 客户端A把消息发送第三方服务端C(即客户自己的服务器),需要C来中转推送消息。
2、 通过调用个推服务端SDK的API接口(单推或批量推送)把消息发送到个推服务器D。
3、 根据条件查找到用户,然后把消息发送到客户端B上,这样客户端B就接收到消息。
反之,客户端B向客户端A发消息,流程也是如此。
服务端的代码需要个推SDK用户在本地编写哦,请根据自己app的实际需求编写即可。

三、 消息推送的流程:
如何通过个推SDK实现IM功能_第1张图片
备注:
A:客户端A B:客户端B
C:第三方服务器 D:个推服务器

四、 注意事项:
单推:
上面的应用场景只是针对点对点的推送,用单推接口即可,把ClientID或别名参数设置好,个推服务器会自动去对应客户端并进行消息推送。
群组推送:
如果要对群组进行推送,则需要调用批量推送的的API接口进行推送。
群组设定可以用标签来划分,推送的时候根据标签进行推送,不用管标签下有多少用户,个推服务器会去查询此标签下的所有用户,然后进行消息推送。

此外,因为个推SDK的正常延迟在250ms以下,所以IM的延迟也会非常的低。