开源移动端 IM 框架 MobileIMSDK v6.0 发布
一、更新内容简介
本次为主要版本更新(本次更新内容见文末“MobileIMSDK v6.0更新内容 ”一节),强势升级,将同时支持TCP、UDP、WebSocket三种协议,精心封装之下,实现同一套API、三种协议同时并存。
可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源IM框架。
二、MobileIMSDK简介
MobileIMSDK 是一套专为移动端开发的原创IM通信层框架:
历经8年、久经考验;
超轻量级、高度提炼,lib包50KB以内;
精心封装,一套API同时支持UDP、TCP、WebSocket三种协议(可能是全网唯一开源的);
客户端支持 iOS、Android、标准Java、H5、小程序(开发中..)、Uniapp(开发中..);
服务端基于Netty,性能卓越、易于扩展;
可与姊妹工程 MobileIMSDK-Web 无缝互通实现网页端聊天或推送等;
可应用于跨设备、跨网络的聊天APP、企业OA、消息推送等各种场景。
MobileIMSDK工程始于2013年10月,起初用作某产品的即时通讯底层实现,完全从零开发,技术自主可控!
您可能需要:查看关于MobileIMSDK的详细介绍。
三、代码托管同步更新
OsChina.net
代码托管: http://git.oschina.net/jackjiang/MobileIMSDK
项目资料: 点击查看更多资料
GitHub.com
代码托管: https://github.com/JackJiang2011/MobileIMSDK
项目资料: 点击查看更多资料
四、MobileIMSDK设计目标
让开发者专注于应用逻辑的开发,底层复杂的即时通讯算法交由SDK开发人员,从而解偶即时通讯应用开发的复杂性。
五、MobileIMSDK框架组成
整套MobileIMSDK框架由以下5部分组成:
Android客户端SDK:用于Android版即时通讯客户端,支持Android 2.3及以上,查看API文档;
iOS客户端SDK:用于开发iOS版即时通讯客户端,支持iOS 8.0及以上,查看API文档;
Java客户端SDK:用于开发跨平台的PC端即时通讯客户端,支持Java 1.6及以上,查看API文档;
H5客户端SDK:资料整理中,不日正式发布;
服务端SDK:用于开发即时通讯服务端,支持Java 1.7及以上版本,查看API文档。
六、MobileIMSDK v6.0更新内容
【重要说明】:
MobileIMSDK v6 为全新版本,新增了对WebSocket协议的优雅支持、多端互踢支持等! 查看详情
【新增重要特性】:
服务端新增WebSocket协议支持,一套API优雅支持TCP、UDP、WebSocket 3种协议;
支持多端互踢功能(可应对复杂的移动端网络变动逻辑对多端互踢算法的影响);
【解决的Bug】:
[Andriod]解决了断线后,fireDisconnectedToServer()方法中的一处空指针隐患;
[iOS] 修复了TCP版代码中,调用[ClientCoreSDK releaseCore]方法会触发自动登陆逻辑的bug;
[服务端] 解决了UDP协议下,重连情况下的被踢者已被服务端注销会话后,客户端才发回登陆响应ACK应答,导致服务端错误地向未被踢者发出已登陆者重复登陆响应的问题;
【其它优化和提升】:
[Andriod]废弃了SDK、Demo代码中的所有AsyncTask的使用;
[Andriod]将所有可使用Lambda表达式的代码全部用Lambda进行了简化。
[iOS] 解决了XCode12上编译SDK的.a包,打包成胖子.a时报“have the same architectures (arm64) and can't be in the same fat output file”的问题;
[iOS] Demo中所有使用过时的UIAlertView改为UIAlertController实现;
[iOS] 解决了iOS端SDK工程中两处因类名重构导致的在XCode12.5.1上编译出错。
[服务端] 将服务端Demo中的Log4j日志框架升级为最新的Log4j2;
[服务端] 服务端可控制是否为每条消息生成发送时间戳(可辅助用于客户端的消息排序逻辑等)。
七、相关链接
MobileIMSDK 的详细介绍:点击查看
MobileIMSDK 的下载地址:点击下载