请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
MobileIMSDK 版本更新日志(本贴持续更新...)
微信扫一扫关注!

前言


关于MobileIMSDK即时通讯框架的详细介绍及其它资源链接,请见:《即时通讯技术MobileIMSDK:快速入门》。

最新动态1:MobileIMSDK的微信小程序端已发布(详见微信小程序端介绍 new)。
最新动态2:MobileIMSDK的Uniapp端已发布(详见微信小程序端介绍 new)。

v6.4 详细更新内容


MobileIMSDK v6.4 为次要版本,进行了若干优化。

【解决的Bug】:

  • 1. [Uniapp端] 解决了Demo界面右上角的连接状态title无法更新的问题;
  • 2. [服务端] 解决桥接模式下与最新rabbitmq库不兼容从而断线重连不成功,导致MQ中消息堆积的问题。

【其它优化和提升】:

  • 1. [服务端] 解决登陆连接指令中的一处潜在空指针风险;
  • 2. [微信小程序端] 优化自带Demo中聊天主界面flex布局下的中部聊天列表高度自适应能力;
  • 3. [微信小程序端/H5端] 优化了Demo中的CSS代码;
  • 4. [微信小程序端/H5端] 优化了WebSocket的关闭逻辑,确保标准API中的close方法因异步调用带来socket实例被错误重置的问题;
  • 5. [H5端] 为Demo增加了消息送达状态图标的显示(包括发送中、发送成功、发送失败3种状态);
  • 6. [H5端] 重新设计了Demo的登录界面;
  • 7. [服务端] 升级amqp-client库至5.x版;
  • 8. [服务端] 解决桥接模式下MQ断线自动恢复时消费者Chennal未主动清理,导致channel越来越多的问题(无消费者与其关联的空channel):
  • 9. [Android] 提升targetSdkVersion至33(即Android 13);
  • 10. [Android] 升级开发工程使之支持最新Android Studio Giraffe和Gradle 8.1.1;

v6.3 详细更新内容


MobileIMSDK v6.3 为次要版本,进行了若干优化。

【新增重要特性】:

  • 1. 提供了灵活的接口供开发者定制和开启SSL/TLS加密传输;

【其它优化和提升】:

  • 1. [iOS] 解决了iOS端Demo在iOS16下的适配问题;
  • 2. [iOS] 解决了iOS端Demo在黑暗模式下背景和标题栏是黑色的问题;
  • 3. [Android] 优化了Android端Demo在最新Android系统下的适配等;
  • 4. [Android/Java] 对全局单例增加线程安全处理,防止在高版本JDK中出现并发调用而导致单例被重复实例化。

v6.2 详细更新内容


MobileIMSDK v6.2 为次要版本,进行了若干优化。

【新增重要特性】:

  • 1. [服务端]新增两个聊天消息前置处理回调,方便开发者进行内容鉴黄、过滤、修改等运营管理;
  • 2. [服务端]新增新增了一个与Web互通情况下的C2C模式回调,用于开发者在互通模式下实现离线消息Push逻辑;

【其它优化和提升】:

  • 1. [Andriod]支持最新的Andriod 12,解决了Demo工程中的Andriod12兼容问题;
  • 2. [Andriod]解决了Demo工程在最新Android Studio编译时报方法数超过65535的经典问题;
  • 3. [服务端]  升级log4j2至2.17.0,解决Log4j2远程代码执行高危漏洞;
  • 4. [服务端]  为ServerEventListener类中的onUserLogout回调增加beKickoutCode参数;
  • 5. [服务端] [优化]尝试解决与Web互通情况下,MQProvider中的work方法会因异步消息导致的AlreadCloseException问题;

v6.1.2 详细更新内容


MobileIMSDK v6.1.2 为次要版本,进行了若干优化。

【解决的Bug】

  • 1. [Andior/iOS]解决了当网络断线后,重传队列中的包不增加重次数从而一直重传的问题;
  • 2. [iOS] 解决了RMMapper库中,因重写父类copyWithZone方法而导致某些工程里的动画效果不生效的问题!

【其它优化和提升】

  • 1. [Andiord]Andriod端Demo中补全了完整的proguard混淆配置,否则真有人对Demo进行“realease”时,会运行报错哦;
  • 2. [iOS]    上一个版本中的Protocal类中忘记补上“sm”字段,现在补上了;
  • 3. [服务端]  服务端Demo同步为最新工程,之前提交的版本未正确合并最新lib等;
  • 4. [服务端]  升级log4j2至2.15.0,解决Log4j2远程代码执行高危漏洞(漏洞样情);
  • 5. [Andiord]Andriod端SDK和Demo工程的targetSdkVersion提升为30;
  • 6. [Andriod]Andriod端TCP版协议Netty库加载方式改为gradle加载;

v6.1.1 详细更新内容


MobileIMSDK v6.1.1 为次要版本,进行了若干优化。

【其它优化和提升】:

  • 1. [服务端]对全局单例增加线程安全处理,防止在高版本JDK(比如JDK11)中出现并发调用而导致单例被重复实例化;
  • 2. [服务端]为WebSocket协议增加了5S心跳模式。

v6.1 详细更新内容


MobileIMSDK v6.1 为次要版本,进行了若干优化。

【其它优化和提升】:

  • 1. 重新设计了心跳算法逻辑,断网感知速度提升1倍;
  • 2. 增加了5S心跳模式;
  • 3. 优化了客户端Demo中关于网络连接状态图标的显示。

v6.0 版更新内容


MobileIMSDK v6 为全新版本,新增了对WebSocket协议的优雅支持、多端互踢支持、H5客户端等!

【新增重要特性】:
  • 1. 服务端新增WebSocket协议支持,一套API优雅支持TCP、UDP、WebSocket 3种协议;
  • 2. 支持多端互踢功能(可应对复杂的移动端网络变动逻辑对多端互踢算法的影响);
  • 3. 全新基于标准WebSocket的H5版SDK发布。

【解决的Bug】:
  • 1. [Andriod]解决了断线后,fireDisconnectedToServer()方法中的一处空指针隐患;
  • 2. [iOS] 修复了TCP版代码中,调用[ClientCoreSDK releaseCore]方法会触发自动登陆逻辑的bug;
  • 3. [服务端] 解决了UDP协议下,重连情况下的被踢者已被服务端注销会话后,客户端才发回登陆响应ACK应答,导致服务端错误地向未被踢者发出已登陆者重复登陆响应的问题:

【其它优化和提升】:
  • 1. [Andriod]废弃了SDK、Demo代码中的所有AsyncTask的使用;
  • 2. [Andriod]将所有可使用Lambda表达式的代码全部用Lambda进行了简化。
  • 3. [iOS]    解决了XCode12上编译SDK的.a包,打包成胖子.a时报“have the same architectures (arm64) and can't be in the same fat output file”的问题;
  • 4. [iOS]    Demo中所有使用过时的UIAlertView改为UIAlertController实现;
  • 5. [iOS]    解决了iOS端SDK工程中两处因类名重构导致的在XCode12.5.1上编译出错。
  • 6. [服务端]  将服务端Demo中的Log4j日志框架升级为最新的Log4j2;
  • 7. [服务端]  服务端可控制是否为每条消息生成发送时间戳(可辅助用于客户端的消息排序逻辑等)。

v5.0.5 版更新内容


【解决的Bug】:
  • 1. [Andriod端]修复了TCP版中,调用ClientCoreSDK.release()方法会触发自动登陆逻辑的bug。

v5.0.4 版更新内容


【解决的Bug】:
  • 1. [服务端]修复了LocalSendHelper.replyDataForUnlogined(..)方法中的一处bug;

v5.0 版更新内容


【重要说明】
MobileIMSDK v5 为全新版本,重构了一些类名和方法名,已无法与旧版直接兼容,如旧版升级时遇到疑问,请前往 http://www.52im.net/forum-89-1.html 发贴讨论!

【新增重要特性】:
  • 1. 同时支持UDP、TCP两种协议支持,不同的协议、完全相同的API;
  • 2. 修改了服务端QoS机制中的ACK应答逻辑,提升应用层体验;

【解决的Bug】:
  • 1. [Android、iOS][bug]解决了一处在极端情况下,因无法收到系统网络事件,而导致网络恢复后,无法重连成功的问题;

【其它优化和提升】:
  • 1. [服务端][优化]优化了Netty的优雅退出逻辑,解决了同步监听Netty退出导致的代码阻塞问题;
  • 2. [服务端][优化]优化了非正常退出的超时会话log输出信息,方便更明确地阅读和调试代码;
  • 3. [Android/iOS/服务端][优化]优化了QoS4SendDaemon类中的一处空指针隐患;
  • 4. [Android/服务端][优化]升级Gson至最新版2.8.6;
  • 5. [Android]Android端Demo的targetSdkVersion升级为29(即Andriod 10)、并切换为Android X支持;

v4.0.1b90513 版更新内容


  • 1. [bug]去掉了v4.0中新增的socket.setSoTimeout(..),因这会导致服务端等断网恢复后,无法自动重连重功的问题;
  • 2. [bug]优化了心跳算法中的一处边界问题,该问题会导致心跳算法小概率无法进入掉线处理/通知逻辑.

v4.0b90430 版更新内容


【解决的Bug】
  • 1. [Android/Java]解决了客户端网络不通且长时间处于前台运行时,因监听线程未正常中断退出而导致重连时OOM的问题;
  • 2. [Android/Java]解决了某些极端情况下,手机的物理网络正常(如:正常连接WiFi时),但到外网(如宽带)实际不通的情况下,外网恢复通信时,socket重连将无法成功的问题;

【其它优化和提升】
  • 1. [服务端]优化了GlobalSendHelper.sendDataS2C(..)方法,使得在未开启与Web互通的情况下,相当于直接调用LocalSendHelper.sendData(..)方法,提高兼容性;
  • 2. [服务端]重新设计了ServerEventListener接口中的回调方法,数据的传递改为Protocal对象,方便后绪实现集群、服务拆分、分布式拆分等;
  • 3. [服务端]优化了服务端某些代码,将变量申明由ConcurrentHashMap改为ConcurrentMap,省去有些开发者将JDK1.8编译后的版本用于JDK1.7版运行报错:“java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()”;
  • 4. [iOS]第3方基础库升级:CocoaAsyncSocket升至v7.6.3、Reachability升至v5.0;
  • 5. [iOS]解决引用的第3方库:Reachability、CocoaAsyncSocket 在开发者工程中使用时可能存在冲突的问题;
  • 6. [Android]升级了Android版Demo工程的targetSDK为28(即android 9.0);
  • 7. [Android]解决了Demo工程,在某些android平板上,从横屏时锁屏状态解锁时,主界面可能会被重新onCreate的问题(详见:https://www.cnblogs.com/zfyouxi/p/5332019.html)。

v3.3.1b81124 版更新内容


【其它优化和提升】
  • 1. [Android|Java] 优化了退出或注册登陆时、socket关闭时的log信息,现在看起来更友好一些;
  • 2. [Android] 解决了某些奇葩机型(比如3星A9)上可能出现“Can't create handler inside thread that has not called Looper.prepare()”的问题;
  • 3. [Android|Java|iOS] 将v3.1版里的本地监听端口由固定的7801改为不固定了(原因是:有些客户反馈在某些手机上发生端口占用的问题,而且此固定端口也没带来多大好处,就先还然成最初的设计吧)。

v3.3 版更新内容


【其它优化和提升】
  • 1. [netty版服务端|mina版服务端] 优化了一处方法的参数合法性检查;
  • 2. [netty版服务端|mina版服务端] 去掉了LocalSendHelper.sendData方法的from_user_id参数,简化API调用;
  • 3. [netty版服务端|mina版服务端] 优化了一处不影响任何算法运行的空指针异常,此异常可能发生于系统关闭未认证的会话时;

v3.2 版更新内容


【解决的Bug】
  • 1. [netty版服务端] 解决因“.closeFuture().await()”阻塞而导致无法正确设置ServerLauncher.running值;
  • 2. [netty版服务端] 解决了LocalSendHelper.sendData时出现2次发送结果回调用的问题;
  • 3. [Android|iOS|Java] 解决了在APP不退出的情况下退出登陆时未清除QoS队列缓存,致换用另一账号时发生数据交叉;

【其它优化和提升】
  • 1. [netty版服务端|mina版服务端] 优化了ServerLauncher.startup()方法,当ServerLauncher.running==true时将直接忽略本次重复启动调用。

v3.1 版更新内容


【新增重要特性】
  • [服务端]新增基于Netty框架的MobileIMSDK服务端版本(即服务端当前拥有基于Mina和Netty的共2个版本)。

【解决的Bug】
  • [Android端、Java端、服务端]解决了在客户端从极烂网络下恢复后,每隔21秒就掉线的问题

【其它优化和提升】
  • [iOS] 优化了demo的ui界面在ios11和xcode9下的兼容性问题。

v3.0b70718 版更新内容


  • [java]解决了Java客户端Demo从登陆界面进入主界面时偶尔卡死的问题。

v3.0b2070713 版更新内容


  • [Android、java、iOS]解决了Demo代码中在不退出APP的情况下退出登陆后再重新登陆时,会报code=203错误的bug。

v3.0 版更新内容


【新增重要特性】

  • 简化了消息发送目标的方式:由原user_id方式改为使用用户名的方式(即取消了每次登陆由服务端生成user_id的方式,从而极大地简化应用层通信的API调用和逻辑代码);
  • 支持Web版与APP版互通(MobileIMSDK-Web版为另一独立工程,不包含在 MobileIMSDK v3 版之内);
  • 优化了Protocal协议结构:增加了typeu用户自定义协议类型字段,从而大大简化了用户自义协议类型的使用;

【解决的Bug】

  • [android]解决了当MobileIMSDK运行于有线电缆网络模式下不能正确判断网络连接事件的问题;
  • [Android、java][bug]修正了Demo中首次登陆时使用了错误的ip后再改成正确的ip时却不能登陆的问题;
  • [Android、java、iOS]解决了客户端(Android、iOS、Java)登陆时当服务端返回的认证结果code不为0时,客户端会进入反复登陆的死循环当中;

【其它优化和提升】

  • [服务端]服务端定时器都由javax.swing.Timer改为java.util.Timer,提高可靠性;
  • [服务端]重构了服务端代码,简化算法的理解、增强代码可读性;
  • [服务端]升级了相关lib包:MINA至最新版2.0.13、gson2.7等;
  • [android]SDK代码依然顽强地支持低至Andriod 2.3.3及以上版本(即Android API Level 10+);
  • [iOS] 优化了demo的ui界面在ios10和xcode8下的兼容性问题。
  • [iOS] 优化了“MessageQoSEvent中的messagesLostNSArray*)lostMessages”为“messagesLostNSMutableArray*)lostMessages”;
  • [Android、java、iOS]优化了在掉线情况下的消息发送能尽快作为“未实时送达”包反馈到UI层从而提升体验;
  • [服务端]因升级MINA2.0.13的需要,服务端SDK运行所需的Java版本已提升至1.7及以上版本;
  • [Java、Android]解决了ClientCoreSDK.release()不能正常停掉LocalUDPDataReciever中的网络监听线程。

v2.1.9 版更新内容


  • 1)[Android]修正了Demo中首次登陆时使用了错误的ip后再改成正确的ip时却不能登陆的问题;
  • 2)[Java]修正了Demo中首次登陆时使用了错误的ip后再改成正确的ip时却不能登陆的问题。

v2.1.8 版更新内容


  • 1)[Android]修正了掉线重连线程在新版Android上不能正常启动的问题;
  • 2)[iOS] 优化了demo的ui界面在ios10和xcode8下的兼容性问题。

v2.1.7.1 版更新内容


  • [Android]解决了此版源码里客户端频繁掉线的问题(正式发布的lib编译包不会存在此问题,只因源码未与精编版即时同步!)。

v2.1.7 版更新内容


  • [iOS]解决了自定义消息指纹码不能生效的问题。

v2.1.6 版更新内容


  • 1)[客户端]登陆时,可提交一个携带额外信息的字符串extra(服务端的回调里可以收到);
  • 2)[服务端]getNextId()方法中,已把登陆信息带过来了(用于某些自定义user id场景下)。

v2.1.5 版更新内容


  • 1)[Server]解决了Server端lib无法部署于java1.5的问题。

v2.1.4 版更新内容


  • [Server]优化了API结构。

v2.1.3 版更新内容


  • [Server]优化了API结构,允许开发者自行实现用户id生成算法,提升安全性。

v2.1.2 版更新内容


  • 1)[Android]优化了MobileIMSDK初始化方法的调用时机,防止因开发者的处理不当而导致首次登陆无法正常完成;
  • 2)当网络断开时的本地userId将被重置为-1;
  • 3)部分API接口优化;
  • 4)重写了各平台客户端的Demo代码,使之更易理解。

v2.1.1 版更新内容


  • [bug fixes]解决了无线网络延较大时刚刚发出的消息在其应答包还在途中时有一定几率被错误地重传。

v2.1 版更新内容


首次在Github开源并发布MobileIMSDK(MobileIMSDK的开发最早开始于2013年10月)。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:[已回复] MobileIMSDK的android版经常断线重连,导致后台线程内存溢出?下一篇:开源轻量级IM框架 MobileIMSDK v3.1 已正式发布!

本帖已收录至以下技术专辑

推荐方案
评论 8
收藏
谢谢分享
签名: 心情好
v5.0.4版发布,解决了服务端一处小bug。
v6.0 版本发布,新增了对WebSocket协议的优雅支持、多端互踢支持、H5客户端等!
v6.1 为次要版本,进行了若干优化。
MobileIMSDK v6.1.2已发布,为次要版本,进行了若干优化。
引用:JackJiang 发表于 2021-12-16 13:03
MobileIMSDK v6.1.2已发布,为次要版本,进行了若干优化。

log4j 不是应该是2.17安全版本 为什么还是release的2.15
引用:shrekting 发表于 2022-04-28 18:58
log4j 不是应该是2.17安全版本 为什么还是release的2.15

你直接下载6.2beta
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部