Android-android 采用XMPP协议进行推送

项目合作 项目合作 主题:1030 回复:2135

Android-android 采用XMPP协议进行推送

虐人心 发布于 2017-04-15 字数 567 浏览 1130 回复 4

采用XMPP协议来实现android的推送功能,用开源的AndroidPn项目,是否存在这样的问题,当客户端很多时,比如成千上万,它的服务器会不会承受不了产生崩溃。之前采用MQTT协议实现推送功能就发生过这样的问题,需要花大力气去修改它的服务器代码。反编译了一些应用,想看看他们的push机制,却发现都没有见到我熟悉的这些协议,貌似都是自己写的?

参考博文
开源AndroidPn项目源码

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(4

甜柠檬 2017-10-16 4 楼

XMPP如果构建分布式聊天服务 比较合适,如米聊这样的服务就是基于XMPP。但是如果仅仅作为PUSH之用,未免有点重量级了,性能也不好。推荐使用更轻量级的解决方案,比如使用nodejs作为分发服务器。 我们曾经测试过一台基于nodejs的专业服务器可以支撑50W左右的tcp长链接。

甜柠檬 2017-09-14 3 楼

使用Ejabberd吧,单台可以支持100W以上。

灵芸 2017-07-22 2 楼

我们用了一段时间的mqtt(Mosquitto),现在我们测试的数据是一台机器可以承受3w人左右的同时在线,我们的一个用户主题在5个左右(比较多)。如果更多用户(>5w)在线的话,我们采取主动分发到多个主机的方式去平衡压力。
如果你们的同时活跃用户不是非常多>10w,我觉的现有的mqtt源码可以满足你的需求,如果有更多的需求,可以修改下源码,毕竟fb的messager就是采用的mqtt,说明理论上是不存在较大的缺陷的。
补充:
拜google大神所赐,GCM在国内现在也可以推送了

归属感 2017-05-04 1 楼

XMPP不就是基于TCP协议的么,因此客户端肯定是和服务器建立的TCP长连接。
在实现服务器的时候,我们采用分布式部署,每个节点最大可以建30W个链接。
实现了类似于围脖的应用,有新消息的情况下会push下去。