1. 程式人生 > >iOS 即時通訊 + 仿微信聊天框架 + 原始碼

iOS 即時通訊 + 仿微信聊天框架 + 原始碼

轉自:http://www.cnblogs.com/taoxu/p/5486417.html

即時通訊(IM),在iOS這片江湖裡面已經算是一個老者了,我這小旋風也是在很早以前巡山的時候,就知道有即時通訊這個妖怪,以前也多多少少接觸過一些,在造APP的時候用過,哎呀,說著說著就感覺要跑題了,腦海中怎麼波濤翻滾的樣子。不好,才開頭了兩句,~~(>_<)~~忍住!!說回正題,我知道的即時通訊有用 還有 XMPPFramework 實現的,當然也有現在也有大部分接入環信的。有些東西掩蓋不住的,可能可能許多同行和我一樣,感覺你知道的越來越多,就越會覺得自己像是個文盲,其實不懂的真的還有好多好多,還有那麼多等著你去學習!!這時候果斷就要引入幾句有哲學含義的話,安慰一下自己。比如“你一定要努力,但千萬彆著急”。O(∩_∩)O哈哈~,感覺會被簡書的孩子打,不能裝逼了。前面那句是簡書主編的一本書的書名,順便也推薦給大家去看看,陶冶一下情操吧。

      應該很多同行也都知道這些個三方,知道他們是怎麼用的,要是還清楚網路協議底層的知識,其實挺讓我羨慕的,畢竟不是計算機專業的,懂得不多,也知道還有很多和我一樣,半路出家的孩子,我還是建議有時間的話去了解學習一下這些最底層,最基礎的東西。我也在不斷的學習嘗試和總結中,相信這些底層的基礎的是你走向大神路,必不可少的,恩,對,必不可少    

    這篇文章我們就說說怎樣自己搭建一個仿模仿微信的聊天框架和怎樣搭建Openfire伺服器來實現一個模仿微信的聊天。

要不造該咋辦?

      下面是一些應該能幫到大家的東西,可以去好好看一看,當然很多理論上的東西,你得花時間,前提是你得有時間(

[email protected][email protected]=)!!

    二: 瞭解XMPP到底是什麼,我知道可能有許多剛PX出來的寶寶們,也經常聽到會用XMPP做即時通訊,那你知道 XMPP 到底是什麼嗎?瞭解他是什麼了,OK ,它裡面一些類和一些方法的使用,也全都在 這裡了。

    三: 環信,我自己覺得它真的是給前端開發者省了很大很大的功夫,其實有詳細開發文件的東西難度都是下降了一萬點的。它還有UI聊天框架,你要做的,就是把它接到自己的APP裡面,還有啥好說的,說了也說不過官方文件。O(∩_∩)O哈哈~

下面你要看的其實好多!

      還是按順序來吧,我們先說說微信的整個聊天框架搭建的一個思路(

對方不想和你說話,並向你丟了一堆 I Need You 星星!)。我也是看著 CocoaChina 上大神的一步步分析,模仿寫的,在原始碼裡面註釋滿滿的,你要認真看,應該沒問題! 

      

       說說上面的框架,採用的是在 控制器1 中新增 控制器2 和控制器3 的方式,控制器1就是一個普通的控制器,他是控制器2 和 控制器3 的代理,控制器2呢就是一個 TableViewController 用來顯示我們的聊天訊息的。控制器3就主要是控制下面鍵盤部分的東西,鍵盤部分其實感覺應該是整個的關鍵,也是有鍵盤輸入,語音,表情,更多這幾部分組成的。整個一個主要的思路就是,控制器3 上的事件都是點選後它的代理 控制器1 響應,然後在控制器1 中去改變 控制器2 上要顯示的東西。      

    簡單羅列一下 Git上原始碼的一個大概,方便大家看吧。

    整個聊天框架在 Chat 資料夾裡面,Chat資料夾下面的 Models 裡面存放的肯定就是各種 Model了,在 Views 資料夾下面,Message 存放的是各種要顯示的 cell , Box 存放的是各種控制器3裡面的介面。

    控制器1: XYDJViewController   控制器2:ZXChatMessageController  控制器3:ZXChatBoxController

說說聊天伺服器吧!

    以前專案有用到 AsyncSocket,環信就不多說了,說再多也然並卵,你能說的比人家官方文件詳細嗎?O(∩_∩)O哈哈。。看著文件去啪啪啪敲鍵盤就夠了,那就說說 XMPPFramework 吧。你要是沒有後臺也沒有伺服器,自己玩,那就和自己玩自己一樣,我是利用 Openfire 伺服器和 Mysql 資料庫 還有 Spark 或者 Adium 前端來使用的。

    根據我自己配置的情況,給大家說說下面注意的幾點!先記得去配置安裝資料庫,再去配置安裝伺服器!當然也不是死的,只是這個順序合理一點!     

    配置資料庫的時候有幾個注意點提一下:

    

     在這個新的 Connections 下面去新增一個新的資料庫,在配置伺服器的時候,大家一定注意:

     一: 你得去安裝 Java 的JDK。我也試著安裝過最新的JAVA環境,事實證明,還是得安裝JDK。。  安裝 8U91版 MAC OSX的。 

     二: 如果還是開啟失敗。可能就是許可權的問題,在終端中輸入:

          sudo chmod -R 777 /usr/local/openfire/bin
          sudo su
          cd /usr/local/openfire/bin
          export JAVA_HOME=`/usr/libexec/java_home`
          echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
          cd /usr/local/openfire/bin
          ./openfire.sh 

     三: 在連結資料庫的時候:

    

      使用者名稱和密碼,就按照你剛開始在配置資料庫的時候的使用者名稱和密碼填寫。和上上圖的 1 2 對應。

      還有這個資料庫URL,你在最上面選擇了 .MySQL之後,下面就會有自動的填充,其中的 [host-name] 就是你配置資料庫的時候 3 處的地址,[database-name] 就是你在配置資料庫的時候在新建的 Connections 裡面建立的資料庫的名字,不是 Connections 的名字,注意一下。

      Spark 或者 Adium 大家點選連結下載。你可以兩個都下載了,建立兩個使用者,分別登入加好友聊聊天試試,看伺服器有沒有什麼問題。還有問題的可以加我QQ詳聊,QQ我部落格園首頁有。 

那結果呢?

    先是建立了兩個使用者,聊兩句天看看我們的伺服器OK麼,結果它是沒問題的。

    

那我們用XMPPFramework呢?  

   關於  的,我就不再多說了,你可以找到的太多太多的文章去學習。在上面的框架中簡單的測試了一下能不能接收到訊息,證明是沒問題的。

 

    順便說說這個XMPP接收到的資料格式是 XML 格式的,有些寶寶可能接觸到的 JSON 格式的資料比較多,XML格式的資料解析不怎麼熟悉, 給大家,資料解析的講解的非常詳細,寫的也是棒棒的!!

結束了?

     恩,寫到這裡差不多就結束了,得說明一點,上面的XMPP的測試程式碼還沒有加進去我們寫的框架當中去,是寫在 XWViewController 裡面的,大家可以下載程式碼自己去完善一下,有時間我自己也會把它加進去的。。


相關推薦

iOS 即時通訊 + 仿聊天框架 + 原始碼

轉自:http://www.cnblogs.com/taoxu/p/5486417.html 即時通訊(IM),在iOS這片江湖裡面已經算是一個老者了,我這小旋風也是在很早以前巡山的時候,就知道有即時通訊這個妖怪,以前也多多少少接觸過一些,在造APP的時候用過,哎呀,

接入網易雲IM即時通訊小程式聊天

 出售微信小程式聊天室完整原始碼,也可定製開發微信小程式。掃碼加微信詳聊 微信小程式開發交流qq群   173683895  、 526474645 ; 接入流程: 初次接觸網易雲通訊IM服務,您可以通過以下產品介紹文件瞭解我們的產品

HTML5+weui仿聊天功能、長按刪除功能

html5微信聊天 h5微信聊天界面最近由於項目需要, 就運用html5+css3+weui+jquery實現的微信聊天小案例,可發表圖像、紅包、打賞...功能, 還可以長按刪除消息。。。案例截圖如下:HTML及Js片段:<!DOCTYPE html><html lang="zh-cn"&g

HTML5仿聊天界面、朋友圈實例

很好 order 分享圖片 ext mount case 天使 inf 仿微信 這幾天使用H5開發了一個仿微信聊天前端界面,尤其微信底部編輯器那塊處理的很好,使用HTML5來開發,雖說功能效果並沒有微信那麽全,但是也相當不錯了,可以發送消息、表情,發送的消息自動回滾定位到底

web版仿聊天界面|h5仿電腦端案例開發

... http gen length false www. wrap 繼續 node 前幾天開發了一款手機端h5仿微信聊天,人唯有不停學習才能進步,這段時間倒騰著整理了下之前項目,又重新在原先的那版基礎上開發了一款仿微信聊天電腦端web版本,聊天頁面又重新優化了多圖預覽、

Netty Springboot仿聊天全棧實戰 從0開發到上線部署視頻教程

線程模型 win 主動 tomcat 高性能 手機端 線程 pen ade 下載地址:百度網盤下載 第1章 課程介紹本章首先讓大家徹底明白通過本課程的學習具體收獲有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹課程涉及到的技術棧等。1-1 課程介紹第2章 netty介

仿聊天介面長按彈框樣式

效果圖 背景 在公司做的專案裡面,剛好有需要用到微信聊天介面長按彈框樣式這種 UI 的。 網上找了一下,沒找到。 Android 現成的 ListPopupWindow 又不能滿足需求。 因此在非上班時間擼一個出來,供大家使用。 示例程式碼 關鍵檔案、示例程式

Netty/Springboot仿聊天全棧實戰 從0開發到上線部署

推薦視訊連結 第1章 課程介紹 本章首先讓大家徹底明白通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹課程涉及到的技術棧等。 第2章 netty介紹與相關基礎知識 初識netty,學習阻塞與非阻塞,同步與非同步,理解BIO、NIO

Netty/Springboot仿聊天全棧實戰 從0開發到上線部署(完整版)

第1章 課程介紹 課程介紹 第2章 netty介紹與相關基礎知識 初識netty,學習阻塞與非阻塞,同步與非同步,理解BIO、NIO、AIO以及netty的執行緒模型 第3章 使用netty編寫第一個hello netty 伺服器 從零開始使用netty編寫伺服器,在網頁

安卓開發-最簡單快速的仿聊天實現-附贈原生表情,QQ原生表情

前言;正常實現聊天功能想必大家都使用三方的Sdk比如環信融雲集成的,但是聊天記錄的儲存只能有三天,想增加儲存時長就需要花錢,so 我只好自己想辦法實現了,這個demo是類似於留言板,並非即時通訊!只實現了表情文字圖文混排,可以通過手動重新整理實現即時通訊ok廢話少說,先看

最簡單快速的仿聊天 demo

TestChatdemo 專案地址:PangHaHa12138/TestChatdemo  簡介:a demo for Android chat look like Weixin 最簡單快速的仿微信聊天 demo 附贈微信原生表情,qq 原生表情 更多:作者 &nbs

Android專案:仿聊天的刪除,置頂。

首先我們要重寫上下文選單方法onCreateContextMenu,從這個方法可以新增需要的條目按鈕,我們要在res/menu目錄下建議個weixin.xml檔案: <?xml version="1.0" encoding="utf-8"?> <menu

基於Websocket開發的仿聊天

一、執行環境及涉及技術:----------------------------------* Visual Studio 2019* SQL SERVER 2008 R2* .Net FrameWork 4.7.2* EF+MVC5.0* Code First* 日誌log4Net* Jquery 3.4.

iOS 基於環SDK實現即時通訊-語音、視訊聊天

這裡建立的專案是在文字聊天專案:http://blog.csdn.net/create_pro/article/details/62420040基礎上新增的功能,所以可能需要先去連結文章地址檢視整合過程,具體專案連結在下面,這裡只介紹使用環信SDK整合語音、視訊

h5移動端聊天室|仿界面聊天室|h5多人聊天

dde ... html5開發 技術 show scrollby anim 世界 info 今年的FIFA世界杯甚是精彩,最近興致高漲就利用HTML5開發了一個手機端仿微信界面聊天室,該h5聊天室采用750px全新伸縮flex布局,以及使用rem響應式配合fontsize

android仿、QQ等聊天介面,實現點選輸入框彈出軟鍵盤、點選其他區域收起軟鍵盤,預設滑動至最低端

如圖所示,點選輸入框及選擇圖片和傳送按鈕時軟鍵盤顯示且不消失,點選其他區域,則隱藏軟鍵盤。 主要程式碼如下: override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { if (ev!!.getAction() ==

HTML5仿手機聊天介面

HTML5仿手機微信聊天介面,截圖效果如下: 原始碼如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5模擬微信聊天介面&l

仿實時聊天簡單資料庫設計

  廢話不多說博主先上圖效果   此次實時聊天功能參考了資料,以及請教了師父給出設計,只設計了四張表,分別是,組表,組成員表,聊天記錄表,好友移除表。        這裡我先說下我的設計思路組表的意思和QQ 群一樣

仿、QQ聊天表情底部彈出

前段時間學習了View的滑動以及Scroller的使用,正好專案中有聊天的功能,就仿照QQ聊天實現了,俗話說:好記性不如亂筆頭,今天我們就來實戰下。 實現效果 No picture say a xx,先看下效果圖吧! 效果實現 結合效果圖,我

iOS 仿語音輸入動畫

這篇是接著上一篇文章, 完成一個隨著語音輸入大小的變化, 而變化的動畫. // // PBSpeechRecognizer.h // ParkBest // // Created by summerxx27 on 2018/10/30. // Copyr