我想设计一套 IM 通讯的系统 (服务器 +Android 客户端),需要考虑哪些问题?

Android · dannie · Created at · Last by boilingcola Replied at · 5937 hits
524

如题,再描述得详细一些。出于学习的目的,想设计一套IM通讯系统,就知道下面几种网上说的实现方案:

  • 使用Smack和XMPP协议实现;
  • 使用netty直接以Socket的方式实现;
  • 用WebSocket来实现;

目前,自己的设计思路还不是太清晰,想知道服务器在设计上需要考虑些什么,如何设计。Android客户端上又需要考虑些什么,如何设计。还有在协议设计的选择上有什么好建议呢?请社区里面的服务器大大和客户端大大可以给些设计思路,或者给一些不错的参考文档 or Blog也行!

强调一下,本人不是伸手党,不强求要什么现成的代码之类的,如果有不错的开源案例可以学习,欢迎推荐

共收到 14 条回复
96
wsw77321 · #1 ·

怎么连一个人都没回复,这是沙发呀!

96
fte · #2 ·

服务器还是找靠谱第三方做吧

96

可以考虑用C++来写,服务器用epoll模型,客户端select模型,需要考虑并发、心跳包、异常状态的处理(包括网络异常,消息包超时),消息格式的封装等问题

96
hjiang · #4 ·

你可以看看 LeanCloud 提供的 IM 服务。如果你是要做一个 Android app,可以直接使用。如果你想做个 IM 服务练手,可能也可以给你些参考。

16

现在有很多县城的解决方案啊,用第三方的吧,技术成本相对较低。比如环信。

645

推荐使用第三方,如果就是想学习技术也可以考虑3L的建议(我们的项目就是通过这个方式实现的)

524
dannie · #7 ·

#2楼 @fte 嗯,这个确实。不过我是想去摸索学习一下!

524
dannie · #8 ·

#4楼 @hjiang 这个不错啊,我去学习学习。got it,thanks!

524
dannie · #9 ·

#5楼 @songzhihui 对滴,现在其实好多推送!环信啊、腾讯云通讯、网易云通讯之类的!

524
dannie · #10 ·

#6楼 @zzsakurazz 嗯嗯,正准备前往仔细探索一番!

650

前两天整理的文章。https://github.com/CameloeAnthony/Perfect_IM_SNS
(整理即时通讯(IM)和社交系统(SNS)优秀开源项目的文档,项目上传github欢迎提交更新。)
即时通讯第三方的: LeanCloud,环信, 网易云信,阿里百川 云旺OpenIM,腾讯云,融云, Bomb IM.....
因为我最近都在学习这方面的东西,希望对你有帮助,哈哈,第一次来diycode

30
d_clock · #12 ·

#11楼 @cameloeanthony 赞,我也来学习一下。

96

我最近在看bmob的IM,更新过的IM感觉比较好用,功能也比较全。

14Floor Deleted
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up