android 采用XMPP协议进行推送时的大量用户讨论
|
admin
2013年2月25日 23:32
本文热度 8897
|
采用XMPP协议来实现android的推送功能,用开源的AndroidPn项目,是否存在这样的问题,当客户端很多时,比如成千上万,它的服务器会不会承受不了产生崩溃。之前采用MQTT协议实现推送功能就发生过这样的问题,需要花大力气去修改它的服务器代码。反编译了一些应用,想看看他们的push机制,却发现都没有见到我熟悉的这些协议,貌似都是自己写的?
该文章在 2013/2/25 23:32:40 编辑过
| |
全部评论2 |
|
admin
2013年2月25日 23:33
0 支持
需要一些策略,比如队列,尽量让集中的请求延时或分散 –崔苔吾 2012-06-06
0 支持
我们用的是http chunked来回发数据,还没测试过大数据量的 –dodola 2012-06-06
0 支持
我看了一下。他的最后使用的还是socket长连接。这样如果使用的是2G网络,会不会出现老掉线的现象啊。 还有啊,如果长连接好使的话。有可以推送功能的东西,为什么还要http来做一些事情啊。 都使用socket长连接得了。哈哈。 第一个问题是我的重点,第二个算是我的好奇心吧。 别喷啊。 哈哈。 –好运 2012-09-29
0 支持
@好运 现在新浪微博的就好像用到的是推送,长连接在移动上很浪费电,所以在pc上普通的连接是都要做些修改和优化。这个技术现在一般的app上还是不容易稳定实现,对技术和资本都有一定的要求。如果这些都不是问题,我个人感觉客户端的体验会更好。每当你打开一个软件,所有的即时信息都在哪里,再也不要各种loading..了。这些推送技术也有各种断线后自动恢复的机制的,但是2G的硬伤在哪里,不要指望在一台90年代的机器上玩爽暗黑了。 –andev 2012-09-29
|
|
admin
2013年2月25日 23:35
我们用了一段时间的mqtt(Mosquitto),现在我们测试的数据是一台机器可以承受3w人左右的同时在线,我们的一个用户主题在5个左右(比较多)。如果更多用户(>5w)在线的话,我们采取主动分发到多个主机的方式去平衡压力。
如果你们的同时活跃用户不是非常多>10w,我觉的现有的mqtt源码可以满足你的需求,如果有更多的需求,可以修改下源码,毕竟fb的messager就是采用的mqtt,说明理论上是不存在较大的缺陷的。
补充:
拜google大神所赐,GCM在国内现在也可以推送了
0 支持
我们的用户数大于10w哦,试过MQTT,服务器不行,承受不了,后台这边也没有利害的人会修改代码。 –懒羊羊 2012-06-25
0 支持
@懒羊羊 最近google的c2dm升级为gcm,删除了日推送上限,如果主要用户群不在国内,是个不错的选择 –andev 2012-07-11
0 支持
@andev(92435431) 你测试的 mqtt 5w人是如何设置服务器环境的 我在服务器上安装mosquitto后只能连接上几千人就无法连接上了 服务器用的默认设置没有修改配置 –娃娃 2012-10-09
0 支持
怎么实现的啊,我都搞了两天没搭建起来,对web没什么概念 –jgszhuzhu 2012-11-05
XMPP如果构建分布式聊天服务 比较合适,如米聊这样的服务就是基于XMPP。但是如果仅仅作为PUSH之用,未免有点重量级了,性能也不好。推荐使用更轻量级的解决方案,比如使用nodejs作为分发服务器。 我们曾经测试过一台基于nodejs的专业服务器可以支撑50W左右的tcp长链接。
2012-00 支持
在android客户端上是用tcp长连接吗?有没有测试客户端的流量和电池消耗? –mikonos 2012-07-28
XMPP不就是基于TCP协议的么,因此客户端肯定是和服务器建立的TCP长连接。
在实现服务器的时候,我们采用分布式部署,每个节点最大可以建30W个链接。
实现了类似于围脖的应用,有新消息的情况下会push下去。
|