环信2.0替换网易云信日志记录

现在在公司管理着5个项目,简直有毒。ps. 我们公司不是外包公司,软件都是归公司所有。
因为公司项目需求,需要将公司项目原有的项目中使用的环信SDK移除,使用网易云信来实现基础的IM功能,感觉自己要爆炸了,手上的需求按照正常的进度都需要三个多月才可能做完,现在又插进这个需求也是醉了,现在将移除环信和植入网易云信的过程记录下来,以供下一个项目植入网易云信的时候有个参考。

我们公司的一个项目名称叫做《珠宝易》,有兴趣的可以上Appstore下载看看。

首先,这个项目开始之初,植入环信的工程师是选择的手动集成,他之前把文件也是随意丢进的项目,感觉找起来都麻烦,这次我选择使用cocopod集成,方便快捷。呵呵呵。

注意

  • 导入的时候注意下面两个任选其一就行,两个同时倒入会报错哦~~

    /// NIMSDK不带UI库,NIMKit带UI库
    pod 'NIMSDK', '~> 5.5.0'
    pod 'NIMKit'
    
  • NIMKit会依赖SDWebImageTZImagePickerController等几个第三方框架,导入的时候注意不要冲突哦~ps.公司这个项目是四年前启动的很多库都是好几年前的版本了,比如SDWebImage项目中是用的这个库的老版本,调用的方法都是旧的,比图缓存的处理啊,图片的下载啊,使用的类都不一样了,改的时候需要注意。

初期需求评审时,我的计划是同时更换掉环信的UI库,使用云信的UI库。后来仔细估算了下工作量,得出的结论是,早期先只更换SDk,等SDK更换完成然后进行UI库的替换。毕竟有太多的自定义cell需要重新写了。
最后发现 还是得同时改。。。

环信SDK解耦

  • 解耦之前我在项目中搜索了一下EaseMob sharedInstance,发现一件头皮发麻的事。

    image.png

  • 搜索EaseMob

我这个项目中对环信的耦合程度太高了,我考虑了下,之后替换环信api的时候不会无厘头的去修改,先将项目中的代码解耦,然后替换。

1.先将整个项目中调用环信的api进行分档归类,这是个苦活,因为耦合度太高,需要归类的文件太多,没办法,慢慢搞起。

2.使用统一的工具类进行SDK的方法调用

3.建立对象的对应关系

3.1 环信和云信对IM的定义

  • 聊天类型分三种 单聊、群聊、聊天室。我这里只用到单聊和群聊。
    他们的聊天type虽然定义的枚举名称不一样,但是都是int类型 - 0:表示单聊;1表示群聊

  • 环信中对会话消息的处理,群消息的处理,好友关系的处理都是依赖的chatManager这个属性

    • chatManager:聊天管理器, 获取该对象后, 可以做登录、聊天、加好友等操作
    • deviceManager:设备管理器, 获取该对象后, 可以操作硬件相关的接口(照片、音频、地理位置信息等)
  • 云信则不一样

    • loginManager:登录管理类 负责登录,注销和相关操作的通知收发
    • chatManager:聊天管理类,负责消息的收发
    • conversationManager:会话管理类,负责消息,最近会话的读写和管理
    • mediaManager:媒体管理类,负责多媒体相关的接口 (录音等)
    • teamManager:群组管理类,负责群组的操作:创建,拉人,踢人,同步等
    • userManager:好友管理类
    • systemNotificationManager:系统通知管理类
    • apnsManager:APNS推送管理类
    • chatroomManager:聊天室管理类
    • broadcastManager:广播消息管理类
    • redPacketManager:红包管理类

3.2 对象的对应关系

环信对象 网易云信对象
EMConversation(聊天的会话对象) NIMSession(会话对象)
EMMessage(聊天消息类) NIMMessage(消息结构)
EMChatText(聊天的文本对象类型)
EMTextMessageBody NIMMessageObject
EMChatImage
EMImageMessageBody NIMImageObject(作为NIMMessage的messageObject)
EMGroup NIMTeam
EMError NSError
EMCDDeviceManager(距离监听)
环信 云信
EMAttachmentDownloadStatus NIMMessageAttachmentDownloadState
附件下载的状态 消息附件下载状态

云信的消息对象NIMMessage,文本消息设置它的text属性,其他的消息类型都是以消息附件的形式发送的,即NIMMessagemessageObject属性。

EMCDDeviceManager:用于设备监听,实现代理方法proximitySensorChanged:当手机靠近耳朵时或者离开耳朵时的回调方法isCloseToUser YES为靠近了用户, NO为远离了用户

[[EaseMob sharedInstance].chatManager pushNotificationOptions]

[[NIMSDK sharedSDK].apnsManager currentSetting]

这两行返回的是推送相关的设置

注意环信的消息撤回和云信的消息撤回不一致ChatViewController中的revokeMenuAction:实现消息撤回,注意逻辑的变更

3.3 EMChatManagerDelegateNIMChatManagerDelegate的对应关系

EMChatManagerDelegate:
接受群组邀请并加入群组后的回调
- (void)didAcceptInvitationFromGroup:(EMGroup *)group error:(EMError *)error;

NIMChatManagerDelegate:对应的回调


4.进行对应对象的替换

5.对统一工具类中每一个方法进行全局搜索,一个一个的验证相关接口调用是否异常

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354