因为公司需求要在安卓和 ios 客户端上做即时聊天系统,请问有什么好的解决方案?

2014-08-01 11:32:09 +08:00
 zerox
首先卡在了协议上,选择什么协议比较好呢,还是说自己设计一套呢?
目前了解到的成熟的协议有XMPP和MQTT,感觉太重了;如果自己设计的话因为没有弄过,心里没底。
然后是服务器端的选择,貌似跟协议的选择也有关系。

假设同时在线10w吧,最好能扩容到100w,大家有什么比较成熟的解决方案吗?
14579 次点击
所在节点    程序员
56 条回复
teavoid
2014-08-02 10:27:19 +08:00
我跟你一样的需求,我用的网易的pomelo框架(nodejs)实时聊天的后台,优点是支持分布式部署,iOS和android端都有开源实现,不过坑确实蛮多的。
不过我没有用pomelo来自己做推送,而是用的baidu的push通道。因为考虑push要维持长连接,就直接用的百度的,减少服务器压力。
ant_sz
2014-08-02 10:39:58 +08:00
parse.com 这样的云服务有提供实时聊天功能的 API 和 SDK
fark
2014-08-02 11:26:09 +08:00
协议选来选去就要看花眼了
另外要是能保证足够的初期使用人数,感觉maidsafe挺不错的
zerox
2014-08-02 12:33:41 +08:00
@teavoid 我也正在搭它的demo,感觉文档不详细
san3ye
2014-08-02 13:58:28 +08:00
反正XMPP是个大坑。。
blueware
2014-08-02 15:34:24 +08:00
如果是在app内嵌代码实现IM功能的话,我推荐用环信。环信团队的人都是在通信领域奋斗多年的专家,他们的产品质量很不错: http://www.easemob.com/


[利益不是很相关],环信的天使和我们A轮是一个投资方,都是matrix partner中国
hjiang
2014-08-04 11:13:47 +08:00
我是 AVOS Cloud 的 CEO,我们的实时消息服务二楼已经推荐过了: https://cn.avoscloud.com/features.html#/slide-2

我们使用的是 WebSocket 之上自定义的协议,效率非常高,并且 API 也足够灵活,可以满足不同场景的需求。服务推出几个月后目前平台上比较大的单个 app 同时在线用户数已经近百万了,一直很稳定。架构上横向扩展也很容易。

另外由于我们还提供免费的推送服务,所以两者是无缝集成的,离线的用户也可以收到消息。

如果和我们的统计分析和数据存储等服务结合起来用,还可以省掉你很多其他事情。
hjiang
2014-08-04 11:17:57 +08:00
忘了说,因为是基于 WebSocket,所以可以支持任何平台,目前我们提供了 iOS 和 Android 的 native SDK,未来会发布 JS、Unity、Windows Phone 的 SDK,也会开放服务器端接口给使用其他语言和平台的用户。当然开放服务端接口细节也意味着要是你有一天想自己做个服务把我们替换掉也是可以的。
stefanie924
2014-08-04 15:03:17 +08:00
@odirus 请教下你们的方案,谢谢 yijshu@gmail.com

BTW: 由于openfire集群的问题,我们换到ejabberd了,但一直想要着手自定义协议来实现,还没得及,希望能得到你们的宝贵经验,再次谢谢
djyde
2014-08-04 23:30:25 +08:00
socket+webview
flysnowxf
2014-08-18 12:07:31 +08:00
@hjiang 我这边也正在使用你们实时通信的功能,主要遇到了2个问题一直卡着,一个是iOS接收不到离线消息(比如app切换到后台就收不到了,下载了你们的demo也有这个问题),另一个是iOS和Android不能相互通信。问题也在群里和用户反馈中提出了,没得到有效的解答。在这里冒昧能帮我们联系一个工程师解答一下吗?
arielyang
2014-11-19 23:22:29 +08:00
竟然只有一位提到 融云 http://rongcloud.cn ~~
arielyang
2014-11-19 23:30:16 +08:00
我是融云的。市面上第三方服务,真正有模有样的也就融云和环信,LeanCloud 产品不错,但是算是 Real-time Communication,还算不上 Instant-messaging。也就是说是做得比较底层的通讯,还没有 IM 的主要业务逻辑,还是需要开发者自己做大量工作的。环信采用的开源客户端和服务器搭建的,虽然做了大量二次开发,但还是有较多坑的,宕机那是经常的,甚至出现过宕机半天的情况。另外 XMPP 协议,流量电量、移动互联网下的消息可靠性,那懂的朋友都知道。
q84629462
2015-02-20 18:01:17 +08:00
@arielyang 融云的web sdk,聊天室无法通信,切换到客服就可以通信
web发送聊天室信息报sendMessage.onError UNKNOW ERROR 1
在融云网站的api调试页面发送聊天室信息也没办法接收到
Feiox
2016-02-25 18:58:20 +08:00
@odirus 最近被聊天、推送相关业务困扰,请问您的这些资料还有吗?能不能发我一份呢?万分感谢。。。 My mail fei2037 艾特 gmail.com
odirus
2016-02-25 19:22:15 +08:00
@Feiox 资料啊?除了语音通话、视频通话正在开发外,其他都完成了。但只有 API 文档了,要不你在马化腾上练习我把。已发邮件。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/125584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX