原文转自 http://blog.csdn.net/educast/article/details/31359835

1、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
 

2、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等等
 

3、QXmpp

Ans. Qt的,慎用
QXmpp是一个跨平台的C++ XMPP客户端开发库, 它是基于Qt库开发的.
QXmpp是非常直观,易于使用, Qt是唯一的第三方依赖库, 用户需要一个有C ++和Qt的基础知识(Qt的信号与槽和数据类型)及开发经验。基础的TCP套接字和XMPP协议的RFC ( RFC3920和RFC3921 )已被封装到类和函数 必要时可以扩展, 所以,用户不需要处理这些细节。
说明文档比较少, 没找到!!!
 

4、oajabber

Ans. 很久没更新,单人开发,慎用
oajabber是一个支持XMPP/Jabber协议的C++库, 可扩展及灵活性好,它的目标是实现最完整的XMPP/Jabber协议的C++库, 这在很大程度上依赖于有oapr对线程和网络的处理及Xerces-C对XML的解析.
 

5、iksemel

Ans. 接口太复杂,慎用
iksemel是一个为Jabber应用而设计的XML(可扩展标记语言)解析器库。 
1. 高度便携,可在所有的POSIX环境和Windows(via mingw)环境下构建
2. 适用于嵌入式系统。代码小,高度模块化,可以削减不必要的部分。内存使用量低,解析器速度相当快。
3. 提供的SAX,DOM和XMPP协议分析器。
4. 支持TLS和SASL安全认证
5. 仅支持UTF-8编码
6. 完整的文档及示例 
 

6、loudmouth

Ans. C的,接口太多,慎用
loudmouth是一个用C/Glib编写的轻量级jabber客户端库, 易于使用和扩展, 可跨平台.
 

7、libstrophe

Ans. C的,有C++封装,可以考虑
libstrophe是一个XMPP协议的客户端和组件通信的C库。我们的目标是建立一个库,它是便携式的,可用的快捷,可靠,有据可查,并充分实现的XMPP规范
 

8、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
 

9、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.

C/C++ XMPP/Jabber 客户端类库对比/点评 (转)的更多相关文章

  1. 即时聊天IM之三 XMPP协议客户端库的和Android端框架概述

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365330     E-Mail:egojit@qq.com smack ...

  2. Converse.js – 开源的 XMPP 聊天客户端

    Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMP ...

  3. 如何将github上的微信客户端类库能够通过composer工具下载

    我将自己开发的微信客户端类库放到了github上面去了. 然后我在我的项目里面添加了一个composer.json文件 内容如下 { "require": { "weix ...

  4. Appium 客户端类库

    Appium 支持以下语言的客户端类库: 语言 Ruby Python Java JavaScript PHP C# Objective-C 锁定注意,一些方法类似 endTestCoverage() ...

  5. WPF一步步开发XMPP IM客户端1:入门

    [起因&目标] 因为工作原因接触openfire服务端和spark客户端开发,主要是基于openfire扩展开发了针对企业用途的服务器插件,还开发了各个平台上的客户端(Windows\mac\ ...

  6. 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表

    1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的 ...

  7. Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比

    Swoole 协程 MySql 客户端与 异步回调 MySql 客户端的对比 为什么要对比这两种不同模式的客户端? 异步 MySQL 回调客户端是虽然在 Swoole 1.8.6 版本就已经发布了, ...

  8. 几个开源XMPP Android客户端简单比较

      想做个基于xmpp的即时通讯工具,服务端已经基本成型了.当然需要客户端需要配合,PC端基于spark进行改造,手机端先从Android入手(IOS估计一个人是搞不过来了). 原本Android开发 ...

  9. iOS平台XML解析类库对比和安装说明

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

随机推荐

  1. 01_1_jdom调用xml文件

    01_1_jdom调用xml文件 1. 导入jdom.jar包 2. xml文件内容 test.xml <?xml version="1.0" encoding=" ...

  2. xmpp 协议详解

    XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测.它在促进服务器之间的准即时操作.这个协议可能最终允许因特网用户向因特网上的其他任何人发送 ...

  3. Android驱动开发读书笔记五

    第五章 本章介绍了S3C6410开发板的功能,开发板的不同主要是在烧录嵌入式系统的方式不同,以及如何在此开发板上安装Android. 1.安装串口调试工具minicom 首先需要一根USB转串口线,由 ...

  4. numpy的linspace使用详解

    文档地址: https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html Parameters(参数): start ...

  5. 洛谷 P3601 签到题

    https://www.luogu.org/problemnew/show/P3601 一道关于欧拉函数的题. 读完题目以后我们知道所谓的$aindao(x)=x- \phi (x) $. 对于x小的 ...

  6. 微软与百度合作:win10搜索引擎默认百度

    全球最大的中文搜索引擎百度公司与微软公司共同宣布双方展开战略合作.百度并将成为中国市场上Windows 10 Microsoft Edge浏览器的默认主页和搜索引擎.也就是说,将来人们在win10的M ...

  7. 03_HibernateSessionFactory源码分析

    文章导读: 讲解了一个线程为什么要使用同一个connection, 我们分析了HiberatenSessionFactory的实现机制, 然后根据Hibernate的写法重构了我们的代码. 最后测试可 ...

  8. Selenium WebDriver- 通过源码中的关键字找到我们要操作的句柄,用于多个窗口之间切换

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  9. C语言总结(3)

    1.字符输入函数getchar 输入一个字符 char ch; ch=getchai(); 字符输出函数putchar 输出一个字符 putchar(输出参数): 2.调用scanf和printf输入 ...

  10. Jeddict目前的使用现状

    一.为什么使用jeddict 工具:提升生产力的工具:创建并部署一个CRUD服务系统,只需要5-10分钟 规范:生成的代码,都是稳定可执行代码(前端自动使用selenium框架测试,后端使用Arqui ...