仿微信APP即时通讯有那么难吗,是时候分享一套即时通讯是如何打造完成的。

一直想写一篇关于im即时通讯分享的文章,无奈工作太忙,很难抽出时间。今天终于从公司离职了,打算好好休息几天再重新找工作,趁时间空闲,决定静下心来写一篇文章,毕竟从前辈那里学到了很多东西。

工作了五年半,这三四年来一直身处社交相关的项目,有直播、即时通讯、短视频分享、社区论坛等产品,深知即时通讯技术在一个项目中的重要性,,也趁这机会总结一下。

  • 重要提示:本文不是一篇即时通讯理论文章,文章内容全部由实战代码组织而成,如果你对即时通讯(IM)技术理论了解的太少,建议先详细阅读:《新手入门一篇就够:从零开发移动端IM》。本站的另一篇《拿起键盘就是干:跟我一起徒手开发一套分布式IM系统》也值得一读。

本文实践内容将涉及以下即时通讯技术内容:

1)Protobuf序列化;
2)TCP拆包与粘包;
3)长连接握手认证;
4)心跳机制;
5)重连机制;
6)消息重发机制;
7)读写超时机制;
8)离线消息;
9)线程池。

不想看文章的同学,可以直接到Github下载本文源码:

1)原始地址:https://github.com/FreddyChen/NettyChat
2)备用地址:https://github.com/52im/NettyChat

经测试发现目前im_lib库只需要用到以下jar包:
netty-buffer-4.1.33.Final.jar
netty-codec-4.1.33.Final.jar
netty-common-4.1.33.Final.jar
netty-handler-4.1.33.Final.jar
netty-resolver-4.1.33.Final.jar
netty-transport-4.1.33.Final.jar
抽取以上jar包,目前自测没有问题。

另外已有朋友有偿分享的一套IM即时通讯,给大家参考。
仿微信APP即时通讯有那么难吗,是时候分享一套即时通讯是如何打造完成的。仿微信APP即时通讯有那么难吗,是时候分享一套即时通讯是如何打造完成的。仿微信APP即时通讯有那么难吗,是时候分享一套即时通讯是如何打造完成的。仿微信APP即时通讯有那么难吗,是时候分享一套即时通讯是如何打造完成的。