关于开发 IM 的架构选择

2018-04-14 19:04:25 +08:00
 AmoxiDu

老哥们,我的毕设是开发一款 IM (要求实现对等传输)。
目前的想法是后端用 SpringMVC,前端的话,重心在前台(要求实现移动 app ),准备用 React Native 框架实现安卓端。根据这些天了解的深入,发现坑真的挺多……
现在的问题在于:
①通信的实现方式上,选用 Socket 还是 WebSocket,二者哪个性能更佳?
②移动 app 的通信实现上,用 js 还是混合原生开发(即用 Java )?
听听大家的意见

7127 次点击
所在节点    程序员
30 条回复
Gathaly
2018-04-15 02:42:16 +08:00
可以考虑 Openfire 现成方案
sagaxu
2018-04-15 03:30:00 +08:00
这不是架构,最多至少库的选择
kindjeff
2018-04-15 09:00:27 +08:00
毕设不是应该直接用各种 IM 的免费额度,下载它们的 sdk 做就好了么(误
yhzwy
2018-04-15 09:30:52 +08:00
具体要实现哪些功能?
毕设 android 端的功能多实现一点就差不多了吧。。
服务端尽量简单。
abcbuzhiming
2018-04-15 11:07:16 +08:00
IM 这玩意,做个原理展示不难,往大了做可是超级深坑,楼主你自己实现个架子就不错了,别的少想,想多了的话,光那个“消息到达检测和消息重发尝试”问题就能坑死你。
xrlin
2018-04-15 15:02:46 +08:00
@abcbuzhiming 非常赞同,这是个深坑,别想一下子就能做得深入、完美,要不腾讯怎么活。
dltech21
2018-04-16 11:04:05 +08:00
ai277014717
2018-04-16 14:01:40 +08:00
协议的话我选 https+pb
iyangyuan
2018-04-16 15:26:56 +08:00
这个不算架构。。你首先应该想到的问题是如何横向扩展,毕竟 IM 系统不可能是单机部署
moka20477
2018-04-16 18:32:04 +08:00
毕业设计话可以直接使用 socket.io ,原生 TCP 的话协议是个比较复杂的部分,且 socket.io native 和 web 都可以支持

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

https://www.v2ex.com/t/446851

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

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

© 2021 V2EX