原文转自 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. bug汇总

    bug 2018年8月23日 bug 1:散点图画不出来. plt.scatter(validation_examples["longitude"], validation_exa ...

  2. MySql常用数据操作

    1.数据库操作: MySQL服务管理命令: 1.启动服务:sudo service mysql start 2.停止服务:sudo service mysql stop 3.重新启动服务:sudo s ...

  3. destoon ip接口失效修改 修改后偶尔会加载很慢

    因为百度ip转换增加了密匙验证,所以导致之前的接口无法再转换ip地址的信息,修复方法如下:打开include\cloud.func.php文件搜索: function iplookup($ip) { ...

  4. Kubernetes的主要功能

    Kubernetes的主要功能 1.数据卷   Pod中容器之间共享数据,可以使用数据卷. 2.应用程序健康检查   容器内服务可能进程堵塞无法处理请求,可以设置监控检查策略保证应用健壮性. 3.复制 ...

  5. AreYouBusy HDU - 3535 (dp)

    AreYouBusy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. TCP的三次握手和四次握手

    三次握手(建立连接) 首先,服务器进程(B)先创建传控制块TCB(用来存储连接信息,如连接表,发送和接收序号等),准备接收客户进程(A)的请求.然后服务器进程处于LISTEN(收听)状态,等待客户的连 ...

  7. Linux学习-Linux 的开机流程分析

    开机流程一览 系统开机的经过可以汇整成底下的流程的: 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置; 读取并执行第一个开机装置内 MBR 的 boot Loader (亦 ...

  8. Linux学习-CentOS 7.x 预设启动的服务简易说明

    这里 仅介绍几个很常见的 daemons 而已,更多的信息呢,就得要麻烦你自己使用 systemctl list-unit-files --type=service 去查询.底下的建议主要是针对 Li ...

  9. 串口编程的相关API函数

    用户使用函数CreateFile()创建与指定串口相关联的文件,然后可以使用该函数返回的文件句柄进行串口参数设置.• 01 HANDLE hModem; //定义串口句柄02 hModem=Creat ...

  10. 像玩魔兽一样编程——谈VS2010键盘流

    早年在学校里的时候,经常玩War3,那时候很痴迷,也经常看sky.moon的一些第一视角,有的时候也会模仿模仿...好吧,往事不堪回首,现在工作了,谈一谈.Net程序猿使用VS的键盘流,如果你不知道s ...