XMPP android xmpp协议详解适合用来做移动 IM 么

用xmpp协议打造自己的IM聊天工具_Java_ThinkSAAS
用xmpp协议打造自己的IM聊天工具
用xmpp协议打造自己的IM聊天工具
内容来源: 网络
采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。
服务端可以用本服务器测试,地址:。如果想自己搭可在本博客其它XMPP文章找到相关搭建资料。
实现了用户注册,登录,添加好友,聊天核心功能。可正常聊天!
详细请参考
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信XMPP-IM方案分析
我的图书馆
XMPP-IM方案分析
1.1&&&&&&&&& Jabber & Xmpp
Jabber(XMPP-&Extensible Messaging and Presence Protocol)协议,是一个开源的即时消息协议,建立在jabber协议上的IM客户端可以互连。关于XMPP的两个官方网&和。&
支持jabber协议的IM软件非常多&其中包括开源不开源的。参见:&
(全部开源),主要以桌面客户端软件的形式运行,可以在一个界面上登陆msn,jabber,gtalk等。&
(多数不开源)主要以web页面的方式提供msn,jabber,gtalk等登陆。
官方软件列表
3. XMPP服务器
xmpp官方服务器列表:&
3.1&&&&&&&&& Openfire (Wildfire) - Java
授权: GPL or 商用 操作系统平台:所有(使用Java开发) XMPP Jabber 协议实现情况:98% Tim 评价: 安装和使用非常简单,安装后进入Web界面进行2~3分钟的配置所有的东西都设好了。使用Java语言开发,在目前Java开发人员到处普及的情况下进行维护和扩展的成本非常低。在我的测试中加上 Connection Manager 的情况下单台服务器可支持 30 万并发用户。缺点是目前还不支持cluster。如果企业内部部署IM使用 Wildfire + Spark 是最佳的组合。 见:
Openfire介绍:
ü&&&& 能支持多种数据库()。
ü&&&& 安装、配置比较容易,配置和管理是基于web页面的。
ü&&&& 提供较为坚实安全保障和良好的性能。
ü&&&& 双重授权(Open Source GPL &&),服务器是开源的,一部分可选组件企业级插件(不开源)。
ü&&&& 易于同其他系统集成。
ü&&&& 的开发语言为java。
ü&&&& 运行平台为windows、linux、MAC OS X。
ü&&&& 支持文档比较全面。
ü&&&& 要求jdk1.5以上的运行环境。
Openfire开源系列包括&& Openfire服务器&& &&&&& 一个跨平台,采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。&&& & Spark安装客户端&& &&&&& Openfire的客户端为spark,Spark支持聊天,语音,视频,会议,文件收发,截屏,连接msn等功能。&& & Spark WEB客户端&& &&&&& 基于WEB的客户端,不支持保存聊天记录,不能传递文件,不支持声音视频等。&& & Tinder 类库&& &&&&& 将Openfire, Whack和 ConnectionManager项目中的部分代码独立出来,提供一个轻量级的 XMPP 运行,让开发人员复用Openfire的基本功能。&& & XIFF类库&& &&&&& XIFF框架是一个flash类库,通过XMPP协议连接服务器。&& & smack类库&& &&&&& Smack类库可以模拟客户端与服务器进行通信。&& & &&&&& 源代码下载地址:http://fisheye.igniterealtime.org/browse/&& &&&&& 安装及源代码下载地址:http://www.igniterealtime.org/downloads/index.jsp&& &&&&& 安装文档:Openfire+Spark+Spark Web安装配置&&
3.2&&&&&&&&& ejabberd - Erlang
授权: GPLv2 操作系统平台:Linux, Windows, MacOS X 等 XMPP Jabber 协议实现情况:91%
评价: Ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。 采用Erlang/OTP开发。它的特点是,跨平台,容错,集群和模块化。&&
3.3&&&&&&&&& Jabberd 2.x – C++
授权: GPL 操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样) XMPP Jabber 协议实现情况:76%
评价: 自从jabber.org改用ejabberd之后,Jabberd一直都在走下坡路。扩展性比不上ejabberd, 易用性比不上 Wildfire,唯一的优势是使用C开发,如果你坚持要用C开发,那么还是选择jabberd吧。
Jabberd2介绍:
ü&&&& 较广泛的支持数据库(MySQL, PostgreSQL, SQLite, BerkeleyDB, Oracle, LDAP,&等)。
ü&&&& 支持动态虚拟主机创建(Virtual hosts with dynamic mass-virtual-hosts creation feature)Jabberd2支持基于ACL的主机访问控制和包过滤的xmpp路由(Host based ACLs and packet filter for policy XMPP routing control)。
ü&&&& 可运行平台为Linux, *BSD, Solaris 和 Windows 32。
ü&&&& 支持多种jabber客户端。
ü&&&& 的开发语言为C/C++。
ü&&&& 支持LDAP 和PAL认证。
ü&&&& 支持DIGST-MD5 、PLAIN和匿名的SASL机制。
ü&&&& 支持XSF(XMPP的最新扩展)。
3.4&&&&&&&&& Jabberd 1.x – C++
授权: GPL 操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样) XMPP Jabber 协议实现情况:45% Tim 评价: 在几年前 jabberd 就是 Jabber 的代名词,至今很多 Jabber 文档仍然介绍的是 Jabber 1.4, 在我以前写的《Jabber 服务器占有率比较》中仍然排名第一。但是它很多新的规范都不支持,相信大部分用户都将转向新的服务器。 见:
Jabberd14介绍:
ü&&&& 是开源和免费的(open source&free)。
ü&&&& 是xmpp的原型实现机支持比较早版本的xmpp协议,也支持较新版本的。
ü&&&& 具有较好的模块化特征。
ü&&&& 使用C/C++编写的,并且有相应的API文档,便于对其进行拓展。
ü&&&& 能较好的提供安全支持(主要是加密协议方面)。
ü&&&& 的配置和部署比较灵活。
ü&&&& 易于定制/集成到网站中。
ü&&&& 支持DIGST-MD5 和PLAIN 的SASL机制。
ü&&&& 可运行平台为Linux, *BSD, Solaris 和 Windows 32。
ü&&&& 仅支持Mysql数据库或者文件系统存储。
ü&&&& 功能较少。
3.5&&&&&&&&& DJabberd - Perl
授权: open source 操作系统平台:主要是 Linux, (Perl写的,其他平台应该也支持) XMPP Jabber 协议实现情况:N/A Tim 评价: djabberd 使用 epoll 技术,理论上单台服务器可以支持更多用户。Djabberd目前主要应用在LiveJournal上,大部分XMPP协议都支持,稳定性也不用置疑。但是因为推出时间尚短,很多细节功能可能需要时间慢慢完善。 djabberd介绍见:
3.6&&&&&&&&& doubango –C++
这个东西自己介绍的东西很全面,但是其依赖的库太多,公司网络下载源码时太慢了,编译一半,不编译了。
Doubango Telecom is a young Telco company focused on open source projects. We are specialized in&NGN&technologies (3GPP, TISPAN, Packet Cabel, WiMax, GSMA, RCS-e, IETF...standards), audio/video coding, cloud computing and WebRTC.&& Our products include SIP/IMS (VoIP) clients/servers/gateways, TelePresence and Telemedicine systems, VNC stacks and audio/video codecs. Most of our products are already open sourced.
3.7&&&&&&&&& Vysper - JAVA
Vysper 旨在成为一个模块化的,全功能的 XMPP(jabber)服务器软件。基于&&网络框架开发。
3.8&&&&&&&&& Trumpeter - JAVA
资料找不到。
3.9&&&&&&&&& xmpp-go - GO
xmpp-go 是 Go 语言实现的兼容 XMPP 协议的客户端和服务器端。
3.10&&& go-xmpp
go-xmpp 是另外一个 XMPP 协议的 GO 语言实现。
4. XMPP-客户端
&xmpp官方客户端列表:&http://xmpp.org/xmpp-software/clients/
4.1&&&&&&&&& Hemlock多框架&&
&&&&& Hemlock使用XMPP MUC chatroom作为多人交互应用的通道,通过flash长连到XMPP Server上。由于XMPP Server(如openfire, ejabberd等)本身就支持多服务器,因此使用默认的版本就可以支持上十万的并发,如果稍加优化,同时支持上百万用户也不会有太大问题。&& &
4.2&&&&&&&&& Mina&- JAVA
&&&&& Mina是一个高性能的Java异步网络通讯框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。&&&
4.3&&&&&&&&& Pidgin – C
pidgin是一个可以在Windows、Linux、BSD和Unixes下运行的多协议即时通讯客户端,可以让你用你所有的即时通讯帐户中一次登录。
pidgin支持的通讯:
?&&&& Bonjour
?&&&& Gadu-Gadu
?&&&& Google Talk
?&&&& Groupwise
?&&&& MXit
?&&&& MySpaceIM
?&&&& SILC
?&&&& SIMPLE
?&&&& Sametime
?&&&& XMPP
?&&&& Yahoo!
?&&&& Zephyr
4.4&&&&&&&&& Gloox – C++
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&
4.5&&&&&&&&& Iris – C++ QT
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等等&
4.6&&&&&&&&& QXmpp – C++ QT
Ans. Qt的,慎用&
QXmpp是一个跨平台的C++ XMPP客户端开发库, 它是基于Qt库开发的.& QXmpp是非常直观,易于使用, Qt是唯一的第三方依赖库, 用户需要一个有C ++和Qt的基础知识(Qt的信号与槽和数据类型)及开发经验。基础的TCP套接字和XMPP协议的RFC ( RFC3920和RFC3921 )已被封装到类和函数 必要时可以扩展, 所以,用户不需要处理这些细节。&
说明文档比较少, 没找到!!!
4.7&&&&&&&&& oajabber – C++
Ans. 很久没更新,单人开发,慎用&
oajabber是一个支持XMPP/Jabber协议的C++库, 可扩展及灵活性好,它的目标是实现最完整的XMPP/Jabber协议的C++库, 这在很大程度上依赖于有oapr对线程和网络的处理及Xerces-C对XML的解析.&
4.8&&&&&&&&& iksemel – C++
Ans. 接口太复杂,慎用&
iksemel是一个为Jabber应用而设计的XML(可扩展标记语言)解析器库。& & &&& 1. 高度便携,可在所有的POSIX环境和Windows(via mingw)环境下构建&& &&& 2. 适用于嵌入式系统。代码小,高度模块化,可以削减不必要的部分。内存使用量低,解析器速度相当快。&& &&& 3. 提供的SAX,DOM和XMPP协议分析器。& &&& 4. 支持TLS和SASL安全认证& &&& 5. 仅支持UTF-8编码& &&& 6. 完整的文档及示例&
4.9&&&&&&&&& loudmouth– C++
Ans. C的,接口太多,慎用&
loudmouth是一个用C/Glib编写的轻量级jabber客户端库, 易于使用和扩展, 可跨平台.
4.10&&& libstrophe – C++
Ans. C的,有C++封装,可以考虑&
libstrophe是一个XMPP协议的客户端和组件通信的C库。我们的目标是建立一个库,它是便携式的,可用的快捷,可靠,有据可查,并充分实现的XMPP规范
4.11&&& Libjingle – C++
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&
4.12&&& libpurple – C++
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.&
4.13&&& xmpp-go - GO
xmpp-go 是 Go 语言实现的兼容 XMPP 协议的客户端和服务器端。
4.14&&& 客户端-AIM即时通信软件
&&&&& 美国在线推出了Flash版AIM即时通信软件,并把这个服务的名字叫做“AIM Express”.以前美国在线也开发了网页版的AIM,但需要JAVA支持,但IE一直对JAVA不太友好,导致不具有普遍性。现在采用Flash技术,因此在用户体验性方面也很好,甚至支持手机短信。同样支持声音提示,可以添加好友,从试用的过程来看,速度非常流畅,和一般的即使通信软件没有区别。&& &&&&& 官方网站 :/&& & &&&&& 通信协议(私有):OSCAR 立即传讯协议和TOC 协议&&
5. XMPP-web
5.1&&&&&&&&& Openfire
上面已描述
Openfire 是实时的基于WEB的即时消息传输平台,是原来的Jive Messenger
5.4&&&&&&&&& JWChat
JWChat是一个功能强大,基于Web的Jabber?客户端。采用AJAX技术开发,这个客户端只用到了JavaScript与HTML。它具备基本的jabber即时消息功能,用户管理,基于MUC协议的群聊天功能。在线演示地址:
6. XMPP SDK
xmpp官方SDK列表:
7. XMPP扩展
7.1&&&&&&&&& JubJub - 记录 XMPP 包
JubJub 是一个服务器端的守护进程用来记录 XMPP 包,模块化架构设计,可灵活的进行配置以处理不同类型的 XMPP 包。
发表评论:
TA的最新馆藏君,已阅读到文档的结尾了呢~~
面向移动设备的xmpp协议的研究与应用,xmpp协议,xmpp协议详解,android xmpp协议,xmpp协议文档,xmpp协议中文参考指南,ios xmpp协议详解,xmpp协议原理,android xmpp协议详解,基于xmpp协议的研究
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
面向移动设备的xmpp协议的研究与应用
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 XMPP和SIP_信息与通信_工程科技_专业资料。文本协议区别XMPP 与 SIP-IM 两大协议的对比 XMPP 与 SIP-IM 两大协议的对比 XMPP 协议简介 Google 通过官方宣布,Goo...  基于XMPP协议的手机多方多端即时通讯方案_解决方案_计划/解决方案_实用文档。一、开发背景 1、国际背景随着 Internet 技术的高速发展,即时通信已经成为一种广泛使用...  xmpp协议的使用_计算机软件及应用_IT/计算机_专业资料。在 android 里面用的 smack 包其实叫做 asmack,该包提供了两种不同的连接方式: socket 和 httpclient。该并...  目前 IM 有四种协议:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平 衡扩充的进程开始协议 SIP(SIMPLE)以及 XMPP。PRIM 与 XMPP、 ...  XMPP_tigase IM服务部署安装_计算机软件及应用_IT/计算机_专业资料。XMPP,tigase...24页 1下载券 XMPP与SIP-IM两大协议的... 3页 免费喜欢此文档的还喜欢 ...  [协议分析] xmpp协议_计算机软件及应用_IT/计算机_专业资料。本文的英文原文来自 RFC 3920 网络工作组 Saint-Andre, Ed. 申请讨论: 3921 Jabber 软件基金会 类别...  XMPP 协议即时通讯(Openfire 服务器版) 一、什么是 XMPP XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议) 是目前主流的 IM(IM:instant ...  通讯和表示协议 简介:可扩展通讯和表示协议 (XMPP)...(XML)的 协议,它用于即时消息(IM)以及在线现场探测...针对即时通讯和空间平衡扩充的进 程开始协议 SIP(...  MSRP协议与SIP_MESSAGE_发送消息的方式对比_工学_高等...(3)大消息传送模式(Large Message Mode) 此模式...IM Core MSRP Server IM XDMS IM XMPP Gateway IM...

我要回帖

更多关于 xmpp im 开源实现 的文章

 

随机推荐