從零開始利用XMPP做即時通訊ios篇(二)

2021-07-02 05:06:39 字數 2502 閱讀 8580

一、即時通訊技術簡介

2.有許多的im系統,如aol im、yahooim、 msn以及qq,它們最大的區別在於各自通訊協議的實現,所以即時通訊技術的核心在於它的傳輸協議

4.人們多次努力,試圖統一各大主要im**商的標準(aol、yahoo及microsoft),但無一成功,且每一種im仍然繼續使用自己所擁有的協議

二、xmpp起源

2.xmpp前身是jabber(2023年),是乙個開源組織定義的網路即時通訊協議

3.xmpp是乙個分散型通訊網路,這意味著,只要網路基礎設施允許,任何xmpp使用者都可以向其他任何xmpp使用者傳遞訊息。多個xmpp伺服器也可以通過乙個專門的「伺服器-伺服器」協議相互通訊,提供了建立分散型社交網路和協作框架的可能性

4.儘管xmpp的出現是為了滿足「個人-個人」即時訊息傳遞的要求,但它完全不必侷限於此任務

三、xmpp慨術

1.xmpp是一種基於xml的協議,它繼承了在xml環境中靈活的發展性。這表明xmpp是可擴充套件的。可以通過傳送擴充套件的資訊來處理使用者的需求,以及在xmpp的頂端建立如內容發布系統和基於位址的服務等應用程式。而且,xmpp包含了針對伺服器端的軟體協議,使之能與另乙個進行通話,這使得開發者更容易建立客戶應用程式或給乙個配置好的系統新增功能

2.xmpp的核心xml流傳輸協議的定義使得xmpp能夠在乙個比以往網路通訊協議更規範的平台上。借助於xml易於解析和閱讀的特性,使得xmpp的協議能夠非常漂亮

3.xmpp的即時通訊擴充套件應用部分是根據ietf在這之前對即時通訊的乙個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如aim,qq等有功能完整,完善等先進性

4.xmpp的官方文件時rfc 3920

四、匯入xmppframework框架

其他語言可用框架: 

/xmppframework

2.匯入依賴框架

cocoalumberjack:日誌框架

cocoaasyncsocket:底層網路框架

需要新增cfnetwork&security框架依賴

–kissxml:xml解析框架

需要新增libxml2.dylib框架依賴

需要指定如下編譯選項:

other_ldflags =-lxml2

header_search_paths =/usr/include/libxml2

libidn

3.將以下4個資料夾匯入到專案

–authentication

–categories

–core

–utilities

另外還需要新增libresolv.dylib依賴

4.匯入xmpp擴充套件框架(extensions)

將sample_xmppframework.h新增到專案,並且重新命名為xmppframework.h

五、xmpp框架常用擴充套件

xep-0045:多使用者聊天

xep-0060:發布-訂閱

xep-0065:socks5位元組流

xep-0085: 聊天狀態通知

xep-0096:檔案傳輸

xep-0172:使用者暱稱

coredatastorage: 資料儲存

reconnect:重新連線

roster:花名冊

六、xmpp核心檔案

xmppstream:是開發過程中最主要互動的類,所有擴充套件和自定義**均要基於此類進行

xmppparser:供xmppstream解析使用

xmppjid:提供了乙個不可變jid的實現,遵守nscopying協議和nscoding協議

xmppelement:以下三個xmpp元素的基類

xmppiq  :請求

xmppmessage  :訊息

xmpppresence  :出席

xmppmodule:開發xmpp擴充套件時使用

xmpplogging:xmpp的日誌框架

xmppinternal:整個xmpp框架內部使用的核心和高階底層內容

七、xmppstream例項的配置

1.配置如何連線至xmpp伺服器

2.新增**

3.新增模組

4.開始連線

5.開始授權

注意:八、xmpp框架提供的主要擴充套件功能

1.xmppreconnect:如果意外中斷,自動重連xmpp流

2.xmpproster:標準的xmpp花名冊

3.xmpproom:提供多人聊天支援

4.xmpppubsub:提供公共訂閱支援

xmpp應用程式功能預設

•使用者登入、註冊

•新增好友roster

•好友聊天

•表情文字(coretext)

•聊天狀態 xep-0085

•聊天室群聊xep-0045

•傳送檔案 xep-0096

•語音聊天 xep-0065

xmpp即時通訊詳解

摘要 此文件定義了可擴充套件訊息出席協議 xmpp 的核心特性 協議使用xml元素在任意兩個網路端點間近實時的交換結構化資訊。當xmpp為交換xml資料提供一般化,可擴充套件的框架時,它主要用於建立滿足rfc2779的即時訊息與出席應用的需求。1 介紹 1.1 概要 xmpp是乙個開放的可擴充套件標...

從零開始開發乙個即時通訊專案

關於聊天室專案 聊天室專案,也被稱為即時通訊 im 比如極光 im 因為之前用的比較多的是極光的推送服務,也對極光的一些服務和開發文件比較熟悉,所以該專案就是完全使用極光的 sdk。im 的應用場景 介紹 該場景只需要一些基礎的聊天功能,直接繼承第三方 im 的優點是不需要後台去實現一大堆東西,前端...

基於XMPP協議的即時通訊

最近公司的專案需要用到即時通訊技術,就花了一點時間對即時通訊技術進行研究。經過調研發現,通過openfire spark smack就可以實現。廢話不多說,下面我們就來講一下具體的實現。1.什麼叫openfire?openfire是乙個即時通訊伺服器,也稱之為即時通訊平台。它是基於xmpp協議的,大...