微信聊天框架的搭建

XZ_WeChat高仿微信聊天框架的搭建,工程地址:https://github.com/corderguo/XZ_WeChat

原文地址:http://coderperson.com/2016/09/28/iOS-weChat/

效果圖展示:



做了兩年IM相關工作了,去年是集成環信的SDK實現的IM功能,今年公司擁有自己的長連接服務器,于是從頭自己定協議然后一步步實現了IM的整體功能,基本把微信IM有關的內容都實現了。最近開始整理過去的一些知識,于是先從聊天框架下手,我從項目中抽出這個簡易的聊天框架,方便大家學習交流。

由于該框架是我用最快的時間從原項目中抽出來的,摘除了本地緩存的功能(這部分內容太多了),所以里面或多或少有一些我原項目中的業務邏輯,不過不要緊,這不會影響你對聊天框架的學習,我也會逐漸把該框架規范起來。

由于作者的電腦環境被折騰壞了,不能安裝cocoapods來管理一些用到的三方,所以直接導入進了該框架,這一點大家不要學習。

該框架目前支持的消息類型:文本消息(包含表情),圖片消息,語音消息,視頻消息,文件消息(pdf,word,excel,ppt,png,html等格式)。

如果你想展示文件消息,你需要把文件拷貝到沙盒的`/Library/Caches/Chat/File`目錄下,由于我以前是從PC端發送文件到手機端進行的展示,所以目前只能你手動拷貝了。

項目中展示的視頻已經轉成了`mp4`類型,而且也經過了壓縮,語音也轉換成了`amr`格式,節省流量的同時,可以和安卓端兼容。

你能從該框架學習到什么:

* 聊天框架的搭建

* 表情鍵盤的實現

* 語音相關的知識

* 視頻相關的知識

* 文件相關的功能

* 轉場動畫相關的知識

* 數據模型和尺寸模型分離

* 你能清楚的了解到在實戰項目中IM的實現

目前該框架這是初步,我還有好多功能沒有加入進去,后續會慢慢加入,包括:

* 消息的轉發、拷貝、撤回

* 文章的分享

* 訂閱號的功能

* 紅包的功能

* 本地緩存的功能(其實很多功能都要基于數據庫的,我把數據庫去除掉后,很多功能就一塊去除了)

* 草稿箱的功能

* 等等等還有好多好多

---

**更新日志**:

10月8日:添加了消息的拷貝、刪除、撤回功能,由于轉發功能需要用到數據庫所以我只添加了轉發的UI,等添加了數據庫后再完善。`注意`這里的只有自己的消息并且是發送成功的消息才可以撤回,我這里限制的是`5分鐘`內的消息可以撤回,超過規定時間不允許撤回。

10月12日:添加了系統消息,當消息撤回的時候聊天界面上提示一條`你撤回了一條消息`的提示。當多人聊天的時候,如果一方撤回了一條消息,系統應該給你發送一條指令,根據這條指令你識別出是哪一條消息被撤回了,然后刪除這條消息,并且插入一條`誰誰撤回了一條消息`。

10月12日:適配xcode8.0,解決bug。

如果你在學習過程中有什么問題可以和我留言,大家共同提高。如果該框架能幫助到你,歡迎star,你的關注是我最大的動力,謝謝!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 點擊查看原文 Web SDK 開發手冊 SDK 概述 網易云信 SDK 為 Web 應用提供一個完善的 IM 系統...
    layjoy閱讀 13,951評論 0 15
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,558評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,255評論 4 61
  • 蘇衍衍許久沒有想起以前的事情了,這一日不知怎么地,就被以前初中的同學找到了,要不是因為以前還算相熟,蘇...
    卓卓ANNE閱讀 399評論 0 0
  • 嗨,大家好!我是鄧海寬,今天的“語文有意思吧”由我主持,本期的主題是“多彩的世界”。我們的生活多姿多彩,我們的詞語...
    微笑著生活一一秀琴閱讀 249評論 0 0