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

默认
打赏 发表评论 2
RainbowChat 版本更新日志(本贴持续更新...)

一、前言


RainbowChat[标准版]自2017年2月起,已全面重构并升级至v4.0版,将HTTP接口全部rest化,目的是使得全面支持iOS端及其它跨平台客户端的接入。

最新动态1:截止2019年06月09日,已发布RainbowChat[专业版] v4.6,全面支持Android 9.0并升级了UI界面
最新动态2:截止2019年01月20日,专业版配套的iOS客户端v1.2已通过苹果App Store审核。

二、专业版,当前版本:v4.6,最近更新:20190609


v4.6更新日志(首次发布于:2019/06/09)


(1)Android端主要更新内容【本版全面升级了UI界面!】:
  • 1)[bug]解决了高版本Android系统时拉取的离线聊天消息,下次登陆显示时有一定几率发生逆序的问题;
  • 2)[优化]优化了查看图片界面的UI;
  • 3)[优化]优化了本地用户头像裁剪界面的UI;
  • 4)[优化]优化了“好友”界面“更多”按钮的弹出菜单UI和体验;
  • 5)[优化]首页“消息”界面标题栏上,“Add”按钮可以弹出弹单,并加入了创建群组功能链接;
  • 6)[优化]使用RecyclerView重写了“随机查找好友结果”界面,并新增加了“换一批”功能;
  • 7)[优化]首页“消息”的item中、用户信息界面中,增加了“陌生人”标识的显示;
  • 8)[优化]本地用户的个人中心中,带有“NEW”标签的功能,点击后就不再显示NEW标签了;
  • 9)[优化]本地用户、用户信息界面中,相册、语音数量UI组件的显示逻辑优化;
  • 10)[bug]解决了某个边界情况下,好友会重复添加并显示在好友列表中的问题;
  • 11)[优化]全面提升整个APP各种UI细节的美化、优化、体验等
  • 12)[bug]解决了首页消息等地方的未读数红包背景不能自动拉伸的问题;
  • 13)[bug]解决了首页“消息”中,静音图标的显示错乱问题;
  • 14)[优化]优化了图片消息、短视频消息的预览图大小,使得在高分辨率手机上预览图更大更清晰。

未标题-1.jpg
▲ 新旧版本对比更多截图点此查看

(2)服务端主要更新内容:
  • 1)[优化]配合客户端优化了图片消息、短视频消息的预览图大小,使得在高分辨率手机上预览图更大更清晰。

v4.5更新日志(首次发布于:2019/05/14)


(1)Android端主要更新内容【本版全面支持Android 9.0,并支持对接RainbowChat-Web产品】:
  • 1)[优化]首页“消息”和聊天界面里的显示的时间,参考微信的逻辑,进行更优化的人性化显示;
  • 2)[优化]去掉了群聊中,去掉了“删除群、解散群、转让群” 3个接口中的gname参数;
  • 3)[优化]升级了MobileIMSDK android端库至v4.0,尝试解决OOM问题(但有客户说新升级会导致掉线?这需要持续观察!)
  • 4)[优化]限制了聊天界面中输入框输入字数,防止超长被UDP传输层截断;
  • 5)[优化]解决了Android 8.0及以上版本时,无法查看大文件内容的问题;
  • 6)[优化]解决了当MiniSdkVersion和TargetSdkVersion属性大于等于13的情况下,在某些android平板上,从横屏时锁屏状态解锁时,某些界面可能会被重新onCreate的问题(详见:https://www.cnblogs.com/zfyouxi/p/5332019.html);
  • 7)[优化]解决了Notification在新版Android系统上的兼容性,包括Android 9上崩溃的问题;
  • 8)[优化]解决了聊天界面中强制隐藏输入法功能在Android 9上崩溃的问题;
  • 9)[升级]升级了okhttp至v3.12.3、gson至v2.8.5;
  • 10)[优化]实现了一套当APP进程被安全助手、系统等非正常杀掉时,可以优雅地从崩溃状态重启的机制;
  • 11)[优化]全面支持新版Android动态权限申请机制(包括:存储权限、相机权限、录音权限对应的所有功能);
  • 12)[优化]整个工程已升级至targetSDKVersion=28(即针对Andriod 9的各种优化)
  • 13)[升级]升级RainbowAV库至v2.2,解决一些高档手机中黑屏等问题;
  • 14)[优化]适配全面屏等;
  • 15)[优化]升级MobileIMSDK 至v4.0.1,解决若干网络bug;
  • 16)[优化]升级所有Activity为AppCompatActivity,并使用最新AppCompat主题;

WX20190621-164406@2x.jpg
▲ targetSDKVersion已提升至28(即Android 9.0)

(2)服务端主要更新内容:
  • 1)升级MobileIMSDK至v4.0版;
  • 2)全面重构了消息或指令实时发送的逻辑,使之支持与Web的互通通信;
  • 3)全面重构了消息或指令的离线处理逻辑,支持与Web互通通信时的离线处理逻辑;
  • 4)[bug]修正了一种极端情况下,重复的大文件上传完成后,更新数据库表信息时sql未加where条件的问题;
  • 5)[优化]优化了用户头像下载接口,使得在web端调用时未设置头像的用户能返回默认图;
  • 6)[优化]优化了短视频首帧图片下载接口,使得在web端调用时未加载到图片文件时能返回默认图;
  • 7)[优化]升级APNs的推送库pushy至v0.13.6;
  • 8)[优化]去掉了好友请求验证处理对象里不需要的邮箱字段;
  • 9)[新增]“接口1008-26-7”、“接口1008-26-8”、“web端专用文件上传接口”、“接口1008-1-25”、“接口1008-3-24”、“接口1008-3-25”、“接口1008-3-26”、“接口1008-4-9”;
  • 10)[优化]把离线消息也主动记录到服务端的聊天记录里;
  • 11)[优化]优化了聊天消息中的图片文件、语音文件、短视频超期清理定时器的Timmer实现,使之更健壮;
  • 12)[新增]增加了聊天记录、离线消息的超期转储定时器(目的是优先保持热数据表的性能);
  • 13)[优化]优化了”解散群组“接口,使之在解散时能将群聊天记录转入存档表;
  • 14)[优化]优化了”删除好友“接口,使之在删除好友时能将聊天记录转入存档表、并同时删除未被拉取的离线消息;
  • 15)[bug]解决了”解散群组“时,离线消息的APNS推送逻辑无法正常走完的问题(原因是高速缓存被过早称除)(影响版本:v4.5);
  • 16)[bug]解决了APP跟Web互通聊天时,陌生人消息记录会重复的问题。
  • 17)[bug]解决了群聊消息记录重复的问题;
  • 18)[优化]优化了【接口1008-26-8】,使之支持群聊消息记录的查询;
  • 19)[优化]群聊时各种指令通知等也存入了聊天记录了(方便Web端使用);
  • 20)[优化]优化了【接口1008-26-7】,使之支持群聊消息数据;
  • 21)[优化]优化了群组头像下载接口,使得在web端调用时文件读取异常的情况下能返回默认图;
  • 22)[优化]群聊消息发送时,服务端扩散写到客户端路径,QoS由之前的false改为了现在的true;
  • 23)[优化]优化了防SQL注入的字符匹配逻辑。
  • 24)[bug]解决了APP发给离线的Web陌生人时,聊天记录重复的问题;
  • 25)[优化]重新整理的离线消息、消息记录的处理逻辑,简化设计,消除逻辑bug隐患;
  • 26)[优化]当APP产品跟Web产品互通时,APP端读取图片、语音留言时dump参数将被强制失效,防止web端加载聊天记录时因文件被转储而加载不到;
  • 27)[bug]解决了Web发给APP的好友聊天消息没有存聊天记录的问题;
  • 28)[bug]解决了当界面数据没有及时刷新情况下,新群主点“退群”而错误地出现群主却能退群的数据不一致性问题;
  • 29)[新增]新增“【接口1008-5-8】:删除聊天消息记录”,目前已用于Web产品,目前其它端暂时用不上本接口;
  • 30)[优化]专为Web产品优化了聊天记录接口、首页“消息”接口,使得删除“首页”消息后,web端就不会加载到此时间之前的聊天记录;
  • 31)[优化]优化了专用于Web产品的http文件上传接口,使得支持web端产品的用户头像上传完整处理逻辑;
  • 32)[优化]优化了服务端的拉取好友请求接口,解决了Web端调用时当请求说明中存在\t等特殊字符时不能正确被JSON.parse()解析的问题。

v4.4更新日志(首次发布于:2018/11/25)


(1)Android端主要更新内容:
  • 1)[bug]解决了大文件消息的文件查看界面中的一个小bug/优化;
  • 2)[bug]解决了一方切换账号后,实时音视频只能单向接通的问题;
  • 3)[优化]优化了聊天界面中的消息气泡显示,当为电话、网址、邮箱等内容时,自动加上超链接;
  • 4)[优化]实现了所有聊天界面中的长按消息气泡复制文本消息的功能;
  • 5)[优化]发送文件功能中,优化了文件选择器:增加了“收到的文件”默认目录内容显示,以及与“系统存储卡”的目录切换能力等;
  • 6)[优化]实现了所有聊天界面中的发送失败消息的重发功能;
  • 7)[新增]实现短视频功能(支持群聊、好友聊天中使用):
  •     * [难点]提供一个高度兼容的视频录制界面及功能逻辑实现;
  •     * 视频录制时的 30 秒限制功能、计时器功能;
  •     * 视频的转码、压缩;
  •     * 视频的上传及消息指令的发送;
  •     * 视频首帧的提取(用于消息气泡上的预览效果显示);
  •     * 视频的下载、离线缓存功能;
  •     * 视频的播放、暂停功能;
  • 8)[bug]解决了网络故障情况下,好友列中删除好友可能会发生崩溃的问题。

a.jpg

(2)iOS端(v1.1)主要更新内容:
  • 1)对目前不支持的消息:大文件、礼品消息、实时音视频呼叫等,给出友好提示信息(而不是技术代码),提升体验;
  • 2)实现了完整的大文件消息的完整功能逻辑,包括:消息接收、UI显示、大文件断点下载(暂停下载/继续下载)、大文件查看等;
  • 3)[bug]解决了好友、陌生人聊天中,当聊天界面被覆盖时,新消息没有即时显示在聊天界面中的问题;
  • 4)[bug]解决了群聊时,发送的语音留言消息当有人读取后,其他人都无法正常读取的问题;
  • 5)[bug]解决了当APP退入后台的瞬间收到好友聊天消息,再在极短时间内回到前台时,有一定几率发生消息重复的问题。

v1.jpg

(3)服务端主要更新内容:
  • 1)支持短视频消息完整功能;
  • 2)优化安全性:防止SQL注入攻击。

v4.3更新日志(发布于:2018/08/21)


(1)Android端主要更新内容:
  • 1)升级Android客户端工程并迁移至Andriod Studio;
  • 2)重构整个工程:降低子工程依赖、删减不必要的代码,使客户端工程更易于研究、学习和2次开发;
  • 4)优化陌生人聊天消息体对象TempChatMsgDTO中多余的字段;
  • 5)全面重构聊天消息IM协议的body数据结构,使之规范化、易扩展和易理解(见MsgBody4Root);
  • 6)解决了陌生人聊天时,只要陌生人聊天界面处于打开状态,其他陌生人发送的消息不自动累计未读数;
  • 7)将原世界频道的所有数据模型、界面逻辑作为一个特殊的群聊类型合并到普通群聊中,大大降低代码冗余、简化理解;
  • 8)升级到RainbowAV_v2.1b180420修改VCCarmera.java,尝试解决绿屏问题;
  • 9)整理优化Android客户端、服务端无意义的代码,并修订一些代码注释使之更有意义;
  • --------
  • 10)实现了首页“消息”界面中item的置顶或取消置顶功能;
  • 11)实现了首页“消息”界面中item的设置已读或设置未读功能;
  • 12)全面重构了首页”消息“、一对一/陌生人/群组聊天中的所有指令和消息时间字段(改为时间戳),实现UI显示时的时区自适应;
  • 13)实现了首页“消息”界面中,长按弹出仿微信的浮动菜单功能(用于解决系统默认菜单在不同厂商手机上的UI兼容问题);
  • 14)解决了“个人中心”,个人相册和语音介绍文字后的“new”图标,在字体变化时会盖住前面的文字的问题;
  • 15)实现图片查界面中,将图片保存到系统相册的功能;
  • 16)[服务端]上传用户头像时,将同时生成一个头像的缩略图;
  • 17)网络连接断开的情况下,发送消息时应显示友好中文,而不是显示code等英文;
  • 18)重构了http、im实用类的包位置,以及所有的消息发送实用类中的异步发送方法等;
  • --------
  • 19)群组列表管理界面与功能逻辑;
  • 20)创建群组的界面和功能逻辑:
  •     * ok 默认群名称生成逻辑优化;
  •     * ok 建群完成后列表界面的刷新显示;
  •     * ok 服务端db中触发器实现群成员插入、删除时,自动更新群主表的“当前成员总数”字段。
  • 21)优化陌生人聊天消息体对象TempChatMsgDTO中多余的字段;
  • 22)全面重构聊天消息IM协议的body数据结构,使之规范化、易扩展和易理解(见MsgBody4Root);
  • 23)实现群聊的内存数据模型(含消息过长自动裁剪逻辑);
  • 24)实现群聊的sqlite本地存储;
  • 25)实现群聊的首页“消息”提醒机制;
  • 26)实现群聊的聊天界面及完整UI交互;
  • 27)实现群信息查看界面UI和功能交互逻辑;
  • 28)群聊Http接口和功能逻辑的实现:
  •      * ok 实现群信息查询接口;
  •      * ok 实现群名称修改接口和界面功能逻辑;
  •      * ok 实现群内昵称修改接口和界面功能逻辑;
  •      * ok 实现群公告的编辑接口和界面功能逻辑;
  •      * ok 实现查询群成员列表接口和界面功能逻辑;
  •      * ok 实现群成员查看及成员删除功能:
  •      * ok 实现删除群成员接口和界面功能逻辑;
  •      * ok 实现群成员邀请接口和界面功能逻辑:
  •      * ok 实现转让群接口及功能(群主);
  •      * ok 实现解散群接口及功能(群主);
  •      * ok 实现退出群接口及功能(群员);
  • 29)群聊实时IM指令和展现逻辑的实现:
  •      * ok 建群、群邀请通知指令及指令传输、UI逻辑实现--> 离线的指令待处理!
  •      * ok 别人加入群的通知;
  •      * ok 退群通知指令及指令传输、UI逻辑实现;
  •          * ok 删除某些人或踢掉某些人通知指令及指令传输、UI逻辑实现;
  •      * ok 群转让通知指令及指令传输、UI逻辑实现;
  •      * ok 解散群通知指令及指令传输、UI逻辑实现;
  •      * ok 编辑公告后的群发;
  •      * ok [优化]群已不存在或您已不在此群内,本条消息发送被取消!
  •      * ok [优化]修改群名时的通知指令及指令传输、UI逻辑实现;
  •      * ok [优化]修改群名时,把新群名带过来并立即在用户界面更新掉(要新加一个指令吗?);
  •      * ok [优化]当我已被踢出本群时,就不应该能再查看群信息了;
  •      * ok [优化]收到有人被踢出的通知时,会错误地把我的本地群信息删除,导致转让群主失败的问题;
  •      * ok [优化]优化所有群指令,自已操作的不需要从服务端再发通知过来,直接本地显示是最佳方法;
  • 30)群聊中的文件发送和接收完整功能;
  • 31)实现消息免打扰功能,并在首页消息、群聊列表界面里,将免打扰图标显示出来(像微信一样);
  • 32)[难点]实现一个服务端群成员列表全局高性能缓存模型,用于提升性能(不用每次都得查询数据库);
  • 33)[bug]解决了解散群聊时提示"你的无线网络不给力"的问题;
  • 34)[bug]解决了群员收到的离线群解散通知时,在APP首页”消息“列表里无法显示出群名称(空白的)的问题;
  • 35)群组头像的完整实现逻辑:
  •      * ok 服务端实现头像生成(仿微信:不足4人用4宫格,4人以上9宫格)、更新、读取策略;
  •      * ok 首页“消息”界面中的群组头像加载、显示、缓存实现;
  •      * ok “群组”界面中的群组头像加载、显示、缓存实现;
  •      * ok 本地用户邀请好友入群、删除群员时会发出通知,以便及时刷新首页”消息“列表、”群组“列表的群头像缓存;
  • 36)优化了群头像的刷新及时性:收到有人被踢的通知时重置头像缓存,并在界面刷新时即时刷新头像;
  • 37)解决了群聊界面中,“More”面板打开等情况下,自已发出的消息会被挡住的问题;
  • 38)解决了当从群名称修改界面等情况下回到聊天界面时,标题不能及时刷新的问题;
  • 39)解决了首页“消息”列表中,有人被删除、或有人加入群后,群头像加载的还是上次的头像;
  • 40)优化了群成员查看或群成员管理界面,使得能点击查看成员详细信息;
  • 41)解决了被踢出群者,收到2条被踢通知的问题;
  • 42)群公告修改完成后,让用户确认是否通知全体成员(之前是默认就发送,无需确认);
  • --------
  • 43)大文件的服务端文件存储逻辑、文件信息表的设计;
  • 44)大文件客户端UI图标素材的准备;
  • 45)实现发送和收到的文件消息聊天气泡layout文件制作;
  • 46)构思和实现Android端大文件断点上传的基本算法和代码;
  • 47)构思和实现服务端大文件断点保存的基本算法和代码;
  • 48)服务端实现一个按文件md5码查询文件是否已被上传过(以及上传过的分块数)http接口;
  • 49)测试大文件的数据上传算法和逻辑全流程(客户端+服务端);
  • 50)实现大文件的数据上传进度和状态变更通知机制(给UI即时显示出来);
  • 51)实现大文件消息在客户端的收到和发送的处理和UI显示逻辑;
  • 52)实现大文件收到消息时,文件的下载(支持断点下载)处理逻辑;
  • 53)实现点击大文件消息时的文件查看界面(含下载、暂停下载、继续下载等功能);
  • 54)实现大文件发出的消息时,点击关联查看文件的界面;
  • 55)实现启用系统intent打开指定文件的功能;
  • 56)当文件名很短时,消息气泡中的文件图标会向左缩进(收到的消息时);
  • 57)[bug]解决了文件上传或续传检查时,文件的上传进度会首先默认显示为100%的问题;
  • 58)[优化]重新设计了大文件下载管理器:
  •      * ok 一次只允许下载一个文件;
  •      * ok 退出下载界面时可在后台静默下载,回到下载界面时能继续显示下载进度等;
  •      * ok 解决了较大文件在后台下载时,APP卡顿的问题;
  • 59)[优化]解决了当文件较大时(比如超过100M),选中文件确认发送时会卡住一会的问题;
  • 60)[优化]解决了发送文件时,当从文件选择界面通过back键返回,会提示”无效的文件路径...“问题;
  • 61)暂停下载后,再进文件下载界面时进度条显示不对的问题;
  • --
  • 62)[bug]解决了删除群成员时,群主可以把自已给删除的问题;
  • 63)[bug]解决了群主首次编辑群公告后,未退出app的情况下查看公告时不显示公告编辑人等信息的问题;
  • 64)优化了“查看群成员”界面,增加了“群主”标签、“我”标签的显示,提升用户体验;
  • 66)[Android端]优化了在某些Android7.0机型上因Context.MODE_WORLD_WRITEABLE参数被消而导致的SharedPreferences读取失败的问题;
  • --
  • 67)[优化][Android端]进一步优化了首页“消息”上的时间显示,使之更人性能、更友好;
  • 69)[bug]解决了客户端“同意”加好友请求后,首次加好后的好友在线状态都无条件是“在线”的问题;
  • 70)[优化]陌生人聊天界面、好友聊天界面中增加了未读消息气泡的功能;
  • 71)[优化]优化了陌生人聊天、好友聊天、世界频道、群聊 4种界面里的自动滚动到最后一行的逻辑,现在现人性化;
  • 72)[优化]重构了ArraListObserverble里的观察者机制,现在一个数据模型可同时添加0到N个观察者;
  • 73)[bug]解决了首页“消息”中删除与某人或某群的聊天item后,内存中的消息缓存没有被清除的问题;
  • 74)[优化]解决了Notification中setLatestEventInfo方法在Android6.0以下和以上版本中的兼容性问题;
  • 75)[优化]陌生人聊天界面上部提示信息上,添加了“加为好友”按钮;
  • 76)[优化]好友列表中删除好友时,也将同时删除首页“消息”上的item(及对应的聊天历史);
  • 77)[优化]解决了删除好友后聊天时,会在首页“消息”上同时出现与此人的好友和陌生人的两个item的问题;
  • 78)[优化]优化了好友列表里的部分图标、和此界面上部“我的信息”的UI;
  • 79)[优化]优化了“查找好友”无结果时的UI提示信息显示;
  • 80)[bug]解决了某些较老机型上因android系统定义的目录有变化而导至无法成功下载文件的问题;
  • 81)[bug]解决了较老手机上不能暂停正在下载中的文件的问题;
  • 82)[bug]解决了已下载完成的文件,点击打开按钮时还会触发下载请求的问题;
  • --
  • 83)[优化]将MobileIMSDK库升级到了v3.4b180717:解决在某些奇葩机型上出现handler在thread内报错的问题;
  • 84)[新增]新增注册HTTP服务器登陆http rest接口,及调用逻辑;
  • 85)[bug]解决了某些情况下会在首页“消息”界面同时出现好友聊天、陌生人聊天的item;
  • --
  • 86)[bug]解决了某些高版本Android机上,播放语音消息时前几百毫秒无声音的问题;

(2)iOS端(v1.0)主要更新内容:
  • 1)实现了一个封装的http rest客户端框架(基于AF3.0);
  • 2)实现了一个通用的文件上传和下载接口(基于AF3.0);
  • 3)实现了与RainbowChat服务端配套的基本IM协议的组装、解析、发送;
  • 4)实现了一对一聊界面和功能(文字、图片、语音留言);
  • 5)搞定app的图标;
  • 6)闪屏界面参考Android版美化完成;
  • 7)登陆界面美化;
  • 8)解决了登陆界面中,输入不存在的用户名,也能进入主界面的问题;
  • 9)登陆界面中用户名理应只能输入数字或邮箱;
  • 10)主界面参考Android版进行美化;
  • 11)网络断线时,把那个提示UI加到首页(参考Android版);
  • 12)首页“消息”界面及功能基本完成;
  • 13)好友界面、数据模型等完整功能的实现:
  •    * ok 好友数据模型初步完整实现;
  •    * ok 好友UI界面初步完整实现;
  •    * ok 好友上线时好像不能更新界面上的小在线下线图标;
  •    * ok 把用户头像加载功能实现等;
  •    * ok 将用户头像显示成圆角,好看一点;
  •    * ok 将好友列表的UI美感严格按照android版美化(包括要实现ios界面的多屏适配);
  •    * ok 首页的“消息”里把聊天消息的收发逻辑加上去;
  •    * ok 主页“消息”、好友列表的未读消息数处理及显示逻辑;
  •    * ok 好友删除功能;
  •    * ok 导航栏上方的两个按钮样式,想办法搞成android相同的样式;
  •    * ok 好友列表界面上方个人信息显示部分,按照android版把它实现;
  • 14)更多页面的界面和功能实现:
  • 15)首页“消息”界面的表格行UI美感按照android版细节美化调整;
  • 16)首页“消息”Tab增加了未读总数的气泡显示,提升未读消息的用户体验;
  • 17)解决了APP从后台回到前台因消息通知数据模型中extObj字段引用对象的野指针、assign 2个问题各自导致的崩溃;
  • 18)完成“查找好友”界面及功能;
  • 19)完成“查找结果”界面及功能;
  • 20)完成“个人信息”界面及功能;
  • 21)实现一对一聊天界面中点击进入查看好友个人信息;
  • 22)实现“加为好友”界面及完整功能;
  • 23)实现了首页的“消息”里:好友请求、请求被拒、请求出错 几个提示消息的完整功能逻辑;
  • -------
  • 24)注册界面和完整功能;
  • 25)[优化]登陆界面自动保存最近登陆的用户名,方便下次登陆时无需再次输入;
  • 25)忘记密码界面和完整功能;
  • 26)邀请朋友的界面和完整功能;
  • 27)[优化]好友列表界面中,左上角“更多”功能的UI及功能关联;
  • 28)实现好友请求列表界面及功能;
  • 29)好友请求处理界面及功能;
  • 30)[优化]优化了首页显示离线好友请求时的时间不是发出请求时的时间问题;
  • 31)[优化]将即时通讯底层库MobileIMSDK升级至v3.2版;
  • 32)实现了个人中心界面基本数据的读取和显示;
  • 33)[bug]首次在iOS11上安装使用时,拍照界面调不出来(是ios11权限问题);
  • 34)实现了个人中心中本地用户头像的上传完整功能(从照片或相册选择图片、裁剪、压缩、上传等);
  • 35)实现了个人中心中本地用户的昵称、其它说明、个性签名、性别、登陆密码的修改完整功能;
  • 36)“关于我们”界面和完整功能;
  • 37)帮助引导界面和完整功能;
  • 38)[bug]在处理好友请求时点“同意”后,首页上的未处理好友请求数会多-1(即共去了2)的问题;
  • 39)[优化]进入未处理好友请求列表时,将强制刷新同步首页的未处理好友请求数,更好保地证未处理好友请求数的一致性;
  • 40)优雅地实现了“更多”界面中的退出登陆功能;
  • 41)将android 4.2里的启动屏幕新UI样式更新过来;
  • 42)[优化]一对一聊天界面中实现本地用户和好友头像的网络加载(之前用的是固定图标);
  • 43)一对一聊天界面UI优化(与Android版保持同步)、代码简化等:
  •    * ok 实现“(+)”更多面板的功能;
  •    * ok 将android版的更多功能的UI样式同步过来;
  •    * ok 将android版的消息气泡UI样式同步过来;
  •    * ok 调整聊天消息中的用户头像大小;
  •    * [持续进行中...]整理并减化一下JSQ的代码;
  •    * ok 解决当界面back时,界面转场过程中_bottomBoxContainerView一直处于可见状态(像一块牛皮癣一样)
  •    * [暂不实现,会致其它问题,代码保持简单比什么都强] 软键盘向弹出时文本框的显示有点滞后不太流畅;
  •    * ok 整理代码,将ToolBar中的send按钮及相关代码都重构成moreBtn这样的叫法,否则会让读代码的人晕掉。
  • 44)[bug]解决了首页“消息”列表中点击查看离线消息时崩溃的问题;
  • 45)[优化]优化了首页“消息”列表中一对一好友聊天item的头像更新机制(如果好友已换头像则下次登陆时将读取最新头像,此前的问题是用的还是老缓存);
  • 46)全面重构语音留言消息的UI、数据模型、收发方式、各种优化:
  •    * ok 解决了再次进入界面时,因语音留言消息导致的崩溃问题;
  •    * ok 重构了整个聊天消息数据结构,合并原ChatMsgEntity到JSQMessage类;
  •    * ok 实现了一次只能播放一个语音;
  •    * ok 实现了跟微信一样的播放喇叭动画;
  •    * ok 实现了音频数据只在播放时才加载(之前是收到消息时就读取到内存中,即使未播放时);
  •    * ok 实现了音频数据的本地缓存加载、网络加载并缓存的逻辑;
  •    * ok 优化气泡样式:取消Mask 纯颜色填充,改为图片拉伸(与其它消息气泡保持一致);
  •    * ok 调整播放喇叭动画显示位置和语音时长的显示位置(跟微信保持一致)、语音时长颜色(跟Android版保持一致);
  •    * ok 语音消息播放完成时的提示音(跟Android版保持一致);
  • 47)语音留言消息的录音界面和功能重构:
  •    * ok 基本UI改造(跟Android版保持一致);
  •    * ok 打开时的音效;
  •    * ok 开始录音时的旋转动画;
  •    * ok 录制中的音量大小幅度动画;
  •    * 录音时长极限时的提示界面实现;
  •    * 不足一秒时发送的提示。
  • -------
  • 48)单独添加OfflineMsgDTO来处理离线消息;
  • 49)重构了聊天消息协议体,增加了MsgBody4Root和MsgBody4Friend类;
  • 50)本地消息发出时,也能在首页“消息”列表里显示;
  • 51)优化JSON库RMMapper,实现了可将json数据反射到父类属性;
  • 52)优化了首页“消息”界面中,网络连接断开时的信息提示UI组件显示时能自动将消息列表向下顶(之前是覆盖在列表上的,不好看);
  • 53)优化了注册界面,实现手势下滑时关闭输入法,提升用户体验;
  • -------
  • 54)[重点]群聊天主界面及消息UI展现逻辑完整实现;
  • 55)群聊功能实现:多对多文本聊天、多对多图片聊天、多对多语音留言聊天;
  • 56)[难点]群头像的读取和刷新逻辑实现;
  • 57)群聊消息在APP首页的提醒功能;
  • 58)[底层]群聊消息列表、群信息的客户端内存缓存模型(读取、更新逻辑);
  • -------
  • 59)实现了聊界面中系统通知的UI显示逻辑,定制并扩展了JSQ聊天界面的相关代码;
  • 60)点击群聊、一对一聊天界面消息里的头像,可以跳到到用户信息界面并查看用户信息;
  • 61)实现了“群组”列表界面的UI和完整功能逻辑;
  • 62)实现了“查看群信息”界面的UI和基本逻辑;
  • 63)“群信息查看”界面中的群名称、“我”的群内昵称修改功能实现;
  • 64)“群信息查看”界面中的群公告编辑、发布功能实现;
  • 65)“群信息查看”界面中的退出本群、解散本群功能实现;
  • 66)实现了创建群聊功能;
  • 67)实现了“群信息查看”界面中的群成员查看、群成员删除、邀请入群、转让群主功能;
  • 68)[bug]解决删除群成员时,群主可以把自已给删除的问题;
  • 69)实现了一对一好友聊天时的消息本地sqlite缓存读、写机制;
  • 70)[bug]解决了群信息查看界面中,无法开启“新消息提示”开关的问题;
  • 71)实现了首页“消息”的本地sqlite缓存读、写机制;
  • 72)实现了群聊天消息的本地sqlite缓存读、写机制;
  • 73)[bug]解决了聊天界面中,当消息图片缩略图已不存在于服务时,会发生界面列表reload死循环的问题;
  • 74)[优化]解决了聊天界面中,打开语音留言录音界面的卡顿问题;
  • 75)[优化]进一步优化了首页“消息”上的时间显示,使之更人性化、更友好;
  • 76)实现了世界频道聊天完整UI和功能逻辑;
  • 77)实现了陌生人聊天完整UI和功能逻辑;
  • 78)[bug]解决了首页“消息”中删除与某人或某群的聊天item后,内存中的消息缓存没有被清除的问题;
  • 79)[优化]陌生人聊天界面上部提示信息上,添加了“加好友”按钮;
  • 80)[优化]好友列表中删除好友时,也将同时删除首页“消息”上的item(及对应的聊天历史);
  • 81)[优化]解决了删除好友后聊天时,会在首页“消息”上同时出现与此人的好友和陌生人的两个item的问题;
  • 82)[优化]首页“消息”Item上可以显示群组的消息免打扰图标了;
  • 83)[新增]实现了首页“消息”界面中的:置顶/取消置顶、设为已读/设为未读;
  • 84)[优化]实现本地sqlite db版本升级逻辑;
  • 85)[优化]优化了“查找好友”、首页“消息”、“好友列表”界面中列表无结果时的UI提示信息显示;
  • 86)[优化]实现了“更多”、“个人中心”、“个人信息”中点击头像查看大图的功能;
  • 87)[优化]查看大图功能里,新增了保存图片到本地的按钮(按钮UI参考了微信);
  • 88)[新增]实现了个人中心的“个人相册”完整功能和逻辑;
  • 89)[优化]同时支持公网的https协议和局域网的http协议;
  • 90)[新增]实现了个人中心的“个人语音介绍”完整功能和逻辑;
  • 91)[新增]新增注销HTTP服务器登陆http rest接口的调用逻辑;
  • 92)[优化]解决了主页的Tabbar在iPhoneX上的UI适配问题;
  • 93)[优化]实现了加好友请求、拒绝好友请求、同意好友请求的APNs离线消息推送机制;
  • 94)[优化]实现了所有群聊聊天消息、系统通知的APNs离线消息推送机制;
  • 95)[优化]实现了所有陌生人聊天、好友聊天的APNs离线消息推送机制;
  • 96)[bug]解决了某些情况下会在首页“消息”界面同时出现好友聊天、陌生人聊天的item;
  • 97)[优化]实现了当APP处于前台时,各种本地Push通知的显示(类似于Android上的Notification通知);
  • 98)[bug]解决了从一对一聊天界面中,点对方信息时显示的个人信息数据不全的问题;
  • 99)[bug]解决了多个账号在同一iphone手机上切换登陆,没有清除之前账号的ios device token在服务端的高速缓存而导致重复收到APNS消息的问题;
  • -----
  • 100)[新增]应苹果审核要求,在个人信息界面新增了“举报此人”功能;
  • 101)[新增]应苹果审核要求,在个人信息界面新增了“加入黑名单”功能;
  • 102)v1.0上架APP Store审核中。。。

(3)服务端主要更新内容:
  • 1)[服务端]重构整个服务端:减少继承层级、降低代码复杂度,,使额不错务端工程更易于研究、学习和2次开发;
  • 2)[服务端]底层IM通信框架升级到了MobileIMSDK v3.3版;
  • 3)[优化]实现了加好友请求、拒绝好友请求、同意好友请求的iOS设备APNs离线消息推送机制;
  • 4)[优化]实现了所有群聊聊天消息、系统通知的iOS设备APNs离线消息推送机制;
  • 5)[优化]实现了所有陌生人聊天、好友聊天的iOS设备APNs离线消息推送机制;
  • 6)[优化]解决了当对方已把“我”从好友列表删除的情况下,“我”再发起删除会在客户端出现服务端异常信息的问题;
  • 7)[服务端]解决了离线消息乱序的问题。

三、标准版,当前版本:v4.4,最近更新:20190122


v4.4b190122更新日志(首次发布于:2018/11/25)


  • 1)[Android]升级Android客户端工程并迁移至Andriod Studio;
  • 2)[Android]重构整个工程:降低子工程依赖、删减不必要的代码,使客户端工程更易于研究、学习和2次开发;
  • 3)[服务端]重构整个服务端:减少继承层级、降低代码复杂度,,使额不错务端工程更易于研究、学习和2次开发;
  • 4)[android、ios、服务端]优化陌生人聊天消息体对象TempChatMsgDTO中多余的字段;
  • 5)[android、服务端]全面重构聊天消息IM协议的body数据结构,使之规范化、易扩展和易理解(见MsgBody4Root);
  • 6)[android]解决了陌生人聊天时,只要陌生人聊天界面处于打开状态,其他陌生人发送的消息不自动累计未读数;
  • 7)将原世界频道的所有数据模型、界面逻辑作为一个特殊的群聊类型合并到普通群聊中,大大降低代码冗余、简化理解;
  • 8)升级到RainbowAV_v2.1b180420修改VCCarmera.java,尝试解决绿屏问题;
  • 9)整理优化Android客户端、服务端无意义的代码,并修订一些代码注释使之更有意义;
  • --------
  • 10)实现了首页“消息”界面中item的置顶或取消置顶功能;
  • 11)实现了首页“消息”界面中item的设置已读或设置未读功能;
  • 12)全面重构了首页”消息“、一对一/陌生人/群组聊天中的所有指令和消息时间字段(改为时间戳),实现UI显示时的时区自适应;
  • 13)实现了首页“消息”界面中,长按弹出仿微信的浮动菜单功能(用于解决系统默认菜单在不同厂商手机上的UI兼容问题);
  • 14)解决了“个人中心”,个人相册和语音介绍文字后的“new”图标,在字体变化时会盖住前面的文字的问题;
  • 15)实现图片查界面中,将图片保存到系统相册的功能;
  • 16)[服务端]上传用户头像时,将同时生成一个头像的缩略图;
  • 17)网络连接断开的情况下,发送消息时应显示友好中文,而不是显示code等英文;
  • 18)重构了http、im实用类的包位置,以及所有的消息发送实用类中的异步发送方法等;
  • --------
  • 19)优化陌生人聊天消息体对象TempChatMsgDTO中多余的字段;
  • 20)全面重构聊天消息IM协议的body数据结构,使之规范化、易扩展和易理解(见MsgBody4Root);
  • --------
  • 21)[服务端]底层IM通信框架升级到了MobileIMSDK v3.3版;
  • 22)[Android端]优化了在某些Android7.0机型上因Context.MODE_WORLD_WRITEABLE参数被消而导致的SharedPreferences读取失败的问题;
  • --------
  • 23)[优化][Android端]进一步优化了首页“消息”上的时间显示,使之更人性能、更友好;
  • 24)[bug][服务端]解决了客户端“同意”加好友请求后,首次加好后的好友在线状态都无条件是“在线”的问题;
  • 25)[优化][Android端]陌生人聊天界面、好友聊天界面中增加了未读消息气泡的功能;
  • 26)[优化][Android端]优化了陌生人聊天、好友聊天、世界频道3种界面里的自动滚动到最后一行的逻辑,现在现人性化;
  • 27)[优化][Android端]重构了ArraListObserverble里的观察者机制,现在一个数据模型可同时添加0到N个观察者;
  • 28)[bug][Android端]解决了首页“消息”中删除与某人或某群的聊天item后,内存中的消息缓存没有被清除的问题;
  • 29)[优化][Android端]解决了Notification中setLatestEventInfo方法在Android6.0以下和以上版本中的兼容性问题;
  • 30)[优化][Android端]陌生人聊天界面上部提示信息上,添加了“加为好友”按钮;
  • 31)[优化][Android端]好友列表中删除好友时,也将同时删除首页“消息”上的item(及对应的聊天历史);
  • 32)[优化][Android端]解决了删除好友后聊天时,会在首页“消息”上同时出现与此人的好友和陌生人的两个item的问题;
  • 33)[优化][Android端]优化了好友列表里的部分图标、和此界面上部“我的信息”的UI;
  • 34)[优化][Android端]优化了“查找好友”无结果时的UI提示信息显示;
  • --------
  • 35)[优化][Android端]将MobileIMSDK库升级到了v3.4:解决在某些奇葩机型上出现handler在thread内报错的问题;
  • 36)[新增][android、ios、服务端]新增注销HTTP服务器登陆http rest接口,及调用逻辑;
  • 37)[优化][ios、服务端]实现了加好友请求、拒绝好友请求、同意好友请求的iOS设备APNs离线消息推送机制;
  • 38)[优化][ios、服务端]实现了所有陌生人聊天、好友聊天的iOS设备APNs离线消息推送机制;
  • 39)[优化][服务端]解决了当对方已把“我”从好友列表删除的情况下,“我”再发起删除会在客户端出现服务端异常信息的问题;
  • 40)[bug]解决了某些情况下会在首页“消息”界面同时出现好友聊天、陌生人聊天的item;
  • --------
  • 41)[bug]解决了某些高版本Android机上,播放语音消息时前几百毫秒无声音的问题;
  • 42)[Android端]解决了一方切换账号后,实时音视频只能单向接通的问题;
  • 43)[Android端]优化了聊天界面中的消息气泡显示,当为电话、网址、邮箱等内容时,自动加上超链接;
  • 44)[Android端][优化]实现了所有聊天界面中的长按消息气泡复制文本消息的功能;
  • 45)[Android端][优化]实现了所有聊天界面中的发送失败消息的重发功能;
  • 46)[Android端][优化]它来级MobileIMSDK至v3.3.1b181124版,取消了MobileIMSDK v3.1中使用的本地固定监听端口7801,并恢复为最初的设计(即端口号0),以便解决某些机型上的端口端用问题;
  • 47)[服务端][优化]优化安全性:防止SQL注入攻击。

v4.3更新日志(发布于:未公开发布)



v4.2更新日志(发布于:2018/02/10)


  • 1)[服务端]优化了服务端邮件发送能力,使得支持SSL的邮箱服务(阿里云已全面禁用25端口的非SSL邮件发送);
  • 2)[服务端]优化了base_conf.properties配置文件在Linux下读取路径的代码;
  • 3)[服务端]优化了“忘记密码”邮件的发送为异步方式,提升客户端接口调用体验;
  • 4)[服务端]优化了“邀请”邮件的发送为异步方式,提升客户端接口调用体验
  • 5)[Android、服务端]优化了离线加好友请求的时间显示为添加发起时间,而非总显示为当前时间;
  • 6)[Android]删除了好友验证通知列表中的长按弹出菜单功能及代码,因为无意义;
  • 7)[Android]优化了首页显示离线好友请求时的时间不是发出请求时的时间问题;
  • 8)[Android、服务端]将即时通讯核心库升级至MobileIMSDK v3.2版
  • 9)[Android][bug]在处理好友请求时点“同意”后,首页上的未处理好友请求数会多-1(即共去了2)的问题
  • 10)[Android][优化]进入未处理好友请求列表时,将强制刷新同步首页的未处理好友请求数,更好保地证未处理好友请求数的一致性;
  • 11)[服务端]让Android、iOS客户端支持标准Emoji表情的发送、存储和显示
  • 12)[Android]实现了“退出登陆”(切换账号重新登陆)功能,并重构/优化了MyApplication、LoginActivity、AlarmsActivity等类代码,重新整理了退出登陆
  • 逻辑及代码使之更优雅合理;
  • 14)[Android]主要界面的UI、图标等优化(扁平化)
  • 15)[Android][bug]解决了聊天界面中图片消息在Android6.0及以上时预览图很小的问题
  • 16)[Android]一对一正式聊天界面中添加了更多功能按钮及其交互方式(跟微信、米聊、易信等的体验保持一致);
  • 17)[Android]一对一陌生人聊天界中添加了更多功能按钮及其交互方式(跟微信、米聊、易信等的体验保持一致);
  • 18)[Android]世界频聊天界中添加了更多功能按钮及其交互方式(跟微信、米聊、易信等的体验保持一致);
  • 19)[Android][bug]解决一对一聊天界面在Android高版本手机(如红米5 android 7.0)时,发送拍照图片后,消息列表不自动滚动到最后的莫名问题;
  • 20)[Android][bug]解决一对一聊天界面中,发送礼物如积分不够点击无反应的问题;
  • 21)[Android]将音视频框架RainbowAV升级至v2.1版(解决高版本Android上某些机型的花屏、native库提示问题)

v4.0更新日志(发布于:2017/09/04)


  • 1)完成RainbowChat的服务端升级到MobileIMSDK v3版;
  • 2)晚已解决不能触发onTransfer回调的问题;
  • 3)优化了login界面中userid和logintoken的定义和使用,使之符合MobileIMSDK v3的设计;
  • 4)完成RainbowChat的Android客户端升级到MobileIMSDK v3版;
  • 5)关闭桥接通信模块,防止好友不在线时无法离线存储;
  • 6)根据MobileIMSDK v3版的typeu字段,重新优化了RainbowChat中的所有协议头;
  • 7)全面重构了im协议相关的常量、协议、格式等,为iOS及其它跨平台客户端做准备;
  • 8)编写完成了im协议字典;
  • 9)完成了RainbowChat中的跨客户端通用rest框架的调试(所有接口将支持iOS、Web等等客户端调用);
  • 10)搞定了所有的通用http rest接口代码的优化和文档编写;
  • 11)完成RainbowChat v4.0所有接口的通用rest化,并完成全面优化、测试和验证:
      * ok-登陆接口;
      * ok-版本检查接口;
      * ok-删除好友接口;
      * ok-用户注册接口;
      * ok-用户基本信息修改接口;
      * ok-用户登陆密码修改接口;
      * ok-用户签名信息修改接口;
      * ok-用户其它说明修改接口;
      * ok-获取用户好友列表接口;
      * ok-发送邀请朋友邮件接口;
      * ok-LOGIC_SNS中的获取用户/好友的个人信息接口;
      * ok-“忘记密码”接口;
      * ok-获取“随机查找好友”结果的接口;
      * ok-获取离线好友请求的接口;
      * ok-获取离线聊天消息的接口。
  • 12)完成了Android客户端的头像上传接口切换到通用http rest的方式(okhttp3实现);
  • 13)完成了服务端的头像上传接口切换到通用http rest的方式;
  • 14)完成了文件上传系列接口的通用rest化,并优化、整理了实现代码:
      * ok-用户头像上传接口;
      * ok-图片聊天消息的图片文件上传接口;
      * ok-语音留言聊天消息的音频文件上传接口;
      * ok-个人照片文件上传接口;
      * ok-个人语音介绍的语音文件上传接口;
      * ok-用户头像下载接口;
      * ok-图片消息的图片文件下载接口;
      * ok-语音留言消息的音频文件下载接口;
      * ok-个人照片图片文件下载接口;
      * ok-个人介绍的语音文件下载接口。
  • 15)解决了个人信息中的照片和语音留言时,当删除的是最后一个文件返回到列表界面时不能即时刷新UI显示内容为空的bug;
  • 16)优化个人信息中的照片和语音留言删除接口为通用http rest;
  • 16)新增了向某客户端推送消息或指令的通用http rest接口;
  • 17)新增了查询个人信息中的照片、语音数量的通用http rest接口;
  • 18)新增了查询个人信息中的照片、语音数据完整列表的通用http rest接口;
  • 19)新增了查询个人信息中的最新照片预览列表的通用http rest接口。
  • 20)解决了服务端删除好友时可能只删除2条好友记录中的一条的Bug(应改为严格按照事务的方式处理);
  • 21)解决了好加友请求在已是好友的情况下,不提交服务端处理已经存在历史请求,而导致该请求一直存在DB中的问题;
  • 22)完成了礼品收发系列通用http rest接口的优化、整理:
      * ok-【接口1012-21-7】用户积分查询接口;
      * ok-【接口1012-21-8】处理某人向另一人赠送礼品数据的接口;
      * ok-【接口1012-21-9】用户所有礼品兑换成积分的接口;
      * ok-【接口1012-21-22】查询用户的指定礼品获赠记录的接口;
      * ok-【接口1012-21-23】查询用户礼物列表的接口;
      * ok-【接口1012-21-24】查询当前系统设定的礼物列表的接口。
  • 23)完成了RainbowChat所依赖的eva_android客户端框架程和jar包的整理;
  • 24)解决了Android客户端新用户首次登陆上传头像后,在修改性别成功后刷新界面数据时UI上会用默认图标替换刚上传的头像的bug(原因是本地上传成功后没有将头像文件名更新到本地用户信息对象上);
  • 25)升级RainbowChat服务端,使得持久化数据可支持SQL Server和MySQL两种数据库:
      * 解决了随机查询好友时,客户关传过来的在线条件和性能条件搞混的问题。
  • 26)解决了Android4.4及以上版本时实时音视频界面中不能显示本地视频预览;
  • 27)升级RainbowChat客户端的实时音视子系统RainbowAV至v2.0版。


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

上一篇:RainbowChat 技术转让说明、授权协议书范本下一篇:RainbowChat开发资料:客户端如何实现收到聊天消息到界面显示的?(针对iOS、Android)
推荐方案
评论 2
rest服务是一种趋势。这样前后端开发更加解耦。个人是这样理解的。这个产品级的东西还是很好的。真的很小巧 服务端很小。对与做大型的东西很好的重构和服用。功能很ok。值得学习和产品的直接使用
签名: 好久不来了 现在不忙了 好好学习
引用:奶瓶 发表于 2017-11-17 16:45
rest服务是一种趋势。这样前后端开发更加解耦。个人是这样理解的。这个产品级的东西还是很好的。真的很小巧 ...

感谢评价
签名: 每天真累
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部