浅谈第三方IM和自己用socket.io搭建聊天服务器,2种方案对比

项目中一直考虑到底用第三方im(腾讯、环信,网易云信)还是自己搭服务器。

前台:vue2.0|react
后台技术展:nodejs,socket.io,mongodb/高iomysql+redis。

众所周知,第三方的优势是稳定,但是缺点也很明显,初创公司无法获得全部数据(经考察,每一家的聊天数据价格都不菲)
一直想自己动手,似乎有很多坑要踩,但是网上有很多成熟的方案而且也不算很复杂,感觉又没有太大难度。

这个问题是想请教过来人,自己动手有哪些不足,哪些地方会遇到坑,哪些框架压力测试下会有问题。
请教下过来人,多谢啦。

另外还有,保活也是个问题,自己搞的话,还没有什么好办法,第三方好像也不是都能保活。

阅读 9.3k
3 个回答

socket.io+redis可以保证socket.io可以分布式部署。
而数据存储我用的mysql。其实没多少坑呀。
保活的话使用pm2即可,我项目上线半年没出过问题

如果你追求极致性能的话,可以把聊天数据写入消息队列,然后新开进程消费消息队列持久化到mysql

第三方除了开始由明确的api,其他并没有很大的好处。也不比音视频,自己做不来。
稍微发展一些时候,基于第三方做业务扩展也是限制颇多。
建议一开始就自己动手,纵然有坑,这个是随着业务发展出现的,也是能接受的。否则等到有一定用户基础后,再换自己开发。嘿嘿...,不敢动吖


这种及时通信的框架,可用试试网易之前的pomelo,用过它做在线授课,稳定性还是很可以的。当然,也很多人用来做游戏。

圈里的兄弟说最大的问题在于负载,还有稳定性,比如丢消息,有的朋友是采用手机端根据时间点去数据库拉消息,拉消息也尽可能只拉取需要的消息,这就需要一个较好完整同步机制,估计也要不少时间成本

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题