最近需要做一個IM即時聊天工具項目, 上網蒐集了一些關於XMPP方面的資料, 將C/C++客戶端庫都列出來了, 由於E文水平不好, 可能有許不多正確地方, 見笑了!!!
gloox
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
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
QXmpp是一個跨平臺的C++ XMPP客戶端開發庫, 它是基於Qt庫開發的.
QXmpp是非常直觀,易於使用, Qt是唯一的第三方依賴庫, 用戶需要一個有C ++和Qt的基礎知識(Qt的信號與槽和數據類型)及開發經驗。基礎的TCP套接字和XMPP協議的RFC ( RFC3920和RFC3921 )已被封裝到類和函數 必要時可以擴展, 所以,用戶不需要處理這些細節。
說明文檔比較少, 沒找到!!!
oajabber
oajabber是一個支持XMPP/Jabber協議的C++庫, 可擴展及靈活性好,它的目標是實現最完整的XMPP/Jabber協議的C++庫, 這在很大程度上依賴於有oapr對線程和網絡的處理及Xerces-C對XML的解析.
iksemel
iksemel是一個爲Jabber應用而設計的XML(可擴展標記語言)解析器庫。
1. 高度便攜,可在所有的POSIX環境和Windows(via mingw)環境下構建
2. 適用於嵌入式系統。代碼小,高度模塊化,可以削減不必要的部分。內存使用量低,解析器速度相當快。
3. 提供的SAX,DOM和XMPP協議分析器。
4. 支持TLS和SASL安全認證
5. 僅支持UTF-8編碼
6. 完整的文檔及示例
loudmouth
loudmouth是一個用C/Glib編寫的輕量級jabber客戶端庫, 易於使用和擴展, 可跨平臺.
libstrophe
libstrophe是一個XMPP協議的客戶端和組件通信的C庫。我們的目標是建立一個庫,它是便攜式的,可用的快捷,可靠,有據可查,並充分實現的XMPP規範