一、gloox
Ans. 老牌庫,推薦
gloox是一個穩定功能完整的XMPP客戶端庫, 使用ANSI C++編寫, 使用它編寫標準客戶很是容易, 並能將Jabber/XMPP功能集成到現有的應用程序中, gloox遵循GNU GPL許可協議, 支持商業許可.
特色:
1. 易於使用
2. 可擴展性好
3. 平臺無關性(支持多種操做系統)
4. 完整的開發文檔
5. 徹底支持XMPP核心協議及幾乎全部的XMPP IM協議
6. 支持TLS和SASL安全認證
7. 支持名冊管理
8. 支持隱私名單
9. 支持SRV查找
10.支持服務器認證方式
11.支持xml:lang
二、Iris
Ans. Qt的,慎用
Iris是基於Qt/C++庫編寫的XMPP/Jabber協議庫,目前它仍然處於開發階段,但已經支持了許多重要的功能。設計目標是全力支持 XMPP協議的正式草案, 庫功能強大且易於使用的,因爲大量使用Qt的結構和數據類型, 對於建立客戶端,服務器和其餘組件很是有用.
特色:
1. 支持XMPP核心協議包括:
1) DNS服務查詢
2) SSL/TLS安全認證
3) SASL加密認證
5) 早期的jabber:iq:auth login
6) 資源綁定
7) 支持HTTP鏈接及Socket5,http代理
8) 高級對象流處理
2. 支持的XMPP-IM協議
1) 消息交換
2) 出席廣播與接收
3) 名冊管理
4) 訂閱功能
3. JEP擴展
1) 版本時間要求
2) 服務發現
3) Jabber帳號註冊
4) 密碼更改
5) 代理註冊
6) VCards
7) 基本組聊天
8) S5B直接鏈接
9) 文件傳輸
開發計劃:
1. 完成支持XMPP核心協議的基本服務
2. 確保XMPP的核心徹底匹配草案
3. 編寫XMPP的核心文檔API
4. 撰寫完整XMPP的即時通信的API
5. 其餘重要規格:x:data, MUC等等
三、QXmpp
Ans. Qt的,慎用
QXmpp是一個跨平臺的C++ XMPP客戶端開發庫, 它是基於Qt庫開發的.
QXmpp是很是直觀,易於使用, Qt是惟一的第三方依賴庫, 用戶須要一個有C ++和Qt的基礎知識(Qt的信號與槽和數據類型)及開發經驗。基礎的TCP套接字和XMPP協議的RFC ( RFC3920和RFC3921 )已被封裝到類和函數 必要時能夠擴展, 因此,用戶不須要處理這些細節。
說明文檔比較少, 沒找到!!!
四、oajabber
Ans. 好久沒更新,單人開發,慎用
oajabber是一個支持XMPP/Jabber協議的C++庫, 可擴展及靈活性好,它的目標是實現最完整的XMPP/Jabber協議的C++庫, 這在很大程度上依賴於有oapr對線程和網絡的處理及Xerces-C對XML的解析.
五、iksemel
Ans. 接口太複雜,慎用
iksemel是一個爲Jabber應用而設計的XML(可擴展標記語言)解析器庫。
1. 高度便攜,可在全部的POSIX環境和Windows(via mingw)環境下構建
2. 適用於嵌入式系統。代碼小,高度模塊化,能夠削減沒必要要的部分。內存使用量低,解析器速度至關快。
3. 提供的SAX,DOM和XMPP協議分析器。
4. 支持TLS和SASL安全認證
5. 僅支持UTF-8編碼
6. 完整的文檔及示例
六、loudmouth
Ans. C的,接口太多,慎用
loudmouth是一個用C/Glib編寫的輕量級jabber客戶端庫, 易於使用和擴展, 可跨平臺.
七、libstrophe
Ans. C的,有C++封裝,能夠考慮
libstrophe是一個XMPP協議的客戶端和組件通訊的C庫。咱們的目標是創建一個庫,它是便攜式的,可用的快捷,可靠,有據可查,並充分實現的XMPP規範
八、Libjingle
Ans. GTalk的庫,能夠考慮
Libjingle - Google Talk Voice及 P2P 的交互操做函數庫
Libjingle是Google提供的C++組件集,它爲Google Talk的點對點通信與語音呼叫功能提供交互操做性。組件包包括了Jingle和Jingle-Audio的google實現的源代碼,它們是XMPP標準的推薦擴展,目前試驗版可用。
咱們發佈此代碼是爲了讓消費者們在實時通信工具的選擇和操做性更多些。Google的源碼發佈基於Berkeley協議,也就是說你能夠把它們合併到商業或非商業的軟件中併發布。
此外關於Google Talk的互操做性,函數庫裏有許多通用組件如P2P棧,它可用來建立各樣的通訊和協做應用程序。咱們但願看到更多組織可以使用這項技術創建創新的的應用程序。
下面是函數庫各個組件的描述。你能夠使用它們中的任一或是所有組件。
base -低級可移植的功能函數
p2p - p2p棧,包括了與XMPP掛鉤的客戶端和基礎p2p函數。
session - 電話呼叫指令以及可變點對點流
third_party - 用於其餘功能的非google組件
xmllite -XML解析器
xmpp - XMPP engine
九、libpurple
Ans. Pidgin的庫,推薦
libpurple is intended to be the core of an IM program. When using libpurple, you'll basically be writing a UI for this core chunk of code. Pidgin is a GTK+ frontend to libpurple, Finch is an ncurses frontend, and Adium is a Cocoa frontend.