`
hetylei
  • 浏览: 138970 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

xmpp with openfire之一 xmpp and openfire

阅读更多
XMPP
  百度百科
 1、什么是XMPP ?
  XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
  XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;
  核心的XML流传输协议
  基于XML流传输的即时通讯扩展应用
  XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
  XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
  XMPP的扩展协议Jingle使得其支持语音和视频。
  2、XMPP的基本网络结构是怎样的?
  XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
  3、XMPP通过TCP传什么了?
  传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。
  4、举个例子看看所谓的XML流是什么样子的?
  客户端:<?xml version='1.0'?>
  <stream:stream
  to='example.com'
  xmlns='jabber:client'
  xmlns:stream='http://etherx.jabber.org/streams'
  version='1.0'>
  服务器:<?xml version='1.0'?>
  <stream:stream
  from='example.com'
  id='someid'
  xmlns='jabber:client'
  xmlns:stream='http://etherx.jabber.org/streams'
  version='1.0'>
  ...其他通信...
  客户端:<message from='juliet@example.com'
  to='romeo@example.net'
  xml:lang='en'>
  客户端: <body>Art thou not Romeo, and a Montague?</body>
  客户端:</message>
  服务器:<message from='romeo@example.net'
  to='juliet@example.com'
  xml:lang='en'>
  服务器:<body>Neither, fair saint, if either thee dislike.</body>
  服务器:</message>
  客户端:</stream:stream>
  服务器:</stream:stream>
  以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message>...</message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一个方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。


可以到http://xmpp.org/查询XMPP的介绍和文档

非常不巧的是,当我写这篇BLOG的时候,XMPP中文翻译计划网站http://www.jabbercn.org/正在更新,网站管理员称原有的数据稍后将转入新wiki中。

当前主流操作系统下的XMPP客户端实现有:
Apple MacOS

Adium
iChat
Console

centericq
Fama IM
GNU Freetalk
mcabber
Cross-Platform (Linux/Mac/Windows)

Coccinella
Jabbim
Jeti
Pidgin
Psi
Spark
Tkabber
Linux/Unix

Ayttm
BitlBee
Empathy
Gajim (also Windows)
Gossip
jabber.el
Kopete
Sim-IM
SIP Communicator
Microsoft Windows
Exodus
JAJC
Miranda IM
Pandion
Trillian Pro

Mobile Phone / PDA

Bombus
IM+
imov Messenger
Jabber Mix Client
Lampiro
mChat
OctroTalk
Talkonaut
Vayusphere
Web Browser

Claros Chat
iJab
Jabbear
JWChat
SamePlace
SparkWeb
TrophyIM

http://xmpp.org/software/clients.shtml

xmpp的服务器端实现:
Citadel
CommuniGate Pro
djabberd
ejabberd
IceWarp
iChat Server
in.jabberd
Isode M-Link
jabberd 1.x
jabberd 2.x
Jabber XCP
Jerry Messenger
Openfire
OpenIM
Prosody
psyced
Sun Java System Instant Messaging
Tigase
http://xmpp.org/software/servers.shtml

openfire
openfire是Jive Software的XMPP开源跨平台服务端实现,扩展灵活,插件丰富,有非常好的社区支持,当前版本3.6.2。在以后的文章中,我将逐渐介绍一些openfire的功能及二次开发。
*同时Jive Software还有非常棒的spark客户端实现及smack开发包。

openfire最新版本下载http://www.igniterealtime.org/projects/openfire/index.jsp
分享到:
评论

相关推荐

    Xmpp和OpenFire实例

    先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...

    xmpp简介及openfire使用手册

    浅显易懂地介绍xmpp与openfire开源项目的使用

    XMPP+Openfire4.5.1+Smack4.3.4+MySql

    XMPP+Openfire4.5.1+Smack4.3.4+MySql,支持手机对手机,手机对PC(Spark)的消息收发

    android studio基于XMPP,Openfire,Smack聊天demo

    android studio 基于XMPP,Openfire,Smack聊天demo 基于openfire3.9.3

    FZQ型自升塔式起重机(圆筒吊)安装通用工艺规程.docx

    FZQ型自升塔式起重机(圆筒吊)安装通用工艺规程.docx

    风险隐患排查治理清单.xls

    风险隐患排查治理清单.xls

    《揭秘100个送礼暗坑》——送礼物BUG千万不要踩,要不然你也就白送礼物了.txt

    《揭秘100个送礼暗坑》——送礼物BUG千万不要踩,要不然你也就白送礼物了

    轻创业的风口红利期项目,视频号Ai短视频带货,适合学生党、宝妈、想多一份副业收入的人去做,10分钟一条原创视频,可放大矩阵操作

    0粉丝 0基础 0风险 0囤货 0发货 0人脉 1.项目介绍 2.注册账号 3.找对标账号和高佣商品添加流程 4.制作带货视频 5.发布视频及变现方式

    基于Springboot+Vue的房屋租赁管理系统源码+数据库(高分毕设)

    基于Springboot+Vue的房屋租赁管理系统源码+数据库(高分毕设)含有代码注释、新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于Springboot+Vue的房屋租赁管理系统源码+数据库(高分毕设)含有代码注释、新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于Springboot+Vue的房屋租赁管理系统源码+数据库(高分毕设)含有代码注释、新手也可看懂,毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行!

    工地试验室实际在岗统计表.xlsx

    工地试验室实际在岗统计表.xlsx

    ASP NET 薪资管理系统项目及其源代码+使用说明(毕设参考)

    ASP.NET 中的薪资管理系统项目是一个先进的Web应用程序,目的是帮助公司高效、准确地管理员工工资的计算、支付和报告。利用这个系统,组织可以简化与员工工资相关的所有工作,确保财务处理的透明度和准确性。 关键特点和重要性 减少工作量:自动化的工资处理减少了手工录入的需求,降低了出错率,提高了效率。 员工数据库管理:系统提供了一种简单的方法来管理员工的详细信息,包括但不限于个人资料、工资详情、出勤记录以及休假请求。 轻松访问:系统设计使得访问员工相关信息变得容易,只需几次点击即可查看或处理工资相关操作。 工资管理系统的推行,有助于保存工资单、每月津贴、扣除额、加班费、无薪工资、贷款维护和迟到扣款等信息。该系统还可以帮助输出完整的员工报告、薪资报告、部门和职位信息等,确保了工资处理的正确性。 该系统不仅能够大幅度节省处理时间,而且由于其结果的持久保存,出错的可能性大幅度减小。与传统的手工方法相比,该系统提供了一种更加高效和准确的薪资管理方式。 此薪资管理系统使用Microsoft Visual Studio 2022作为开发环境,后端数据库使用SQL Server,通过专业的技术栈确保了

    安卓最佳计算器应用及源代码+使用说明(毕设参考)

    安卓最佳计算器应用及源代码 什么是安卓计算器应用? 安卓计算器应用是一款能够以美观的方式执行简单和复杂数学运算的应用。 你可以进行加法、减法、乘法和除法等基础数学运算。 安卓计算器应用是一个简单的安卓项目,不需要太多工作量。 它的工作方式就像普通计算器一样。在这里,你可以轻松完成所有数学运算。如果你想运行该项目,你将需要使用Android Studio来执行。 在运行项目之前,请确保你的计算机中安装了Android Studio。 安卓最佳计算器应用:项目详情和技术 项目标题:带源代码的安卓计算器应用 摘要:安卓计算器应用是你手机上最基础但也最重要的应用之一。你每天都需要处理计算问题,计算器应用允许你在外出时使用智能手机进行所有计算。 项目类型:移动应用 技术:Android Studio 数据库:SQLite 项目产出: 安卓最佳计算器应用输出 更新任务 删除任务 如何运行带源代码的安卓最佳计算器应用 确保你的电脑中安装了Android Studio。 第一步:下载源代码。 第二步:解压文件。 第三步:打开项目。 第四步:运行项目。

    基于java开发的仿支付宝AR扫描的动画效果+源码+文档+代码解析+运行教程(毕业设计&课程设计&项目开发)

    基于java开发的仿支付宝AR扫描的动画效果+源码+文档+代码解析+运行教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java开发的仿支付宝AR扫描的动画效果+源码+文档+代码解析+运行教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java开发的仿支付宝AR扫描的动画效果+源码+文档+代码解析+运行教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java开发的仿支付宝AR扫描的动画效果+源码+文档+代码解析+运行教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 仿 支付宝的AR红包扫描效果 ScannerView的实现主要是利用canvas绘制圆弧通过更改角度值实现的动画 使用的 方法很简单,xml文件申明,通过调用setState方法来更改状态值就行

    平衡计分卡与战略地图案例.pptx

    平衡计分卡与战略地图案例.pptx

    2020植物蛋白饮料创新趋势

    2020年,植物蛋白饮料市场高速发展,尤其是销量增速上,远超其他饮料品类

    工业云促进智慧水务发展.pptx

    工业云促进智慧水务发展.pptx

    智能座舱:汽车智能化先锋,千亿蓝海国产化加速

    智能座舱:汽车智能化先锋,千亿蓝海国产化加速

    1000.2115.3001.4503

    1000.2115.3001.4503

    yscan是一款基于go写的端口扫描工具,集masscan+nmap+wappalyzer+证书于一体

    【作品名称】:yscan是一款基于go写的端口扫描工具,集masscan+nmap+wappalyzer+证书于一体 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:前提 只支持darwin/linux 需要高权限 需要安装libpcap 特点 高效 默认逻辑 top50 tcp扫描然后做waf判断,减少端口膨胀带来扫描压力->top1000无状态扫描(-port参数可调端口范围)->开放的端口做tcp扫描扫描 编译 go mod tidy go build yscan.go

    一种伸缩机构的结构分析和优化

    伸缩结构的伸缩机构成形采用伸缩机构成形方式,模具简单,工艺方便,但由于成形过程中受到多因素的耦合作用,导致伸缩结构会出现失稳伸缩起皱现象,严重影响管坯的成形质量。针对以上问题,本文采用ANSYS有限元建模,以伸缩结构的伸缩起皱为研究对象,针对影响伸缩起皱的工艺参数进行系统研究。该研究为预测伸缩结构伸缩起皱缺陷提供了一种新的思路和方法。本文主要的研究内容和研究结果如下所示: 基于ANSYS仿真软件,建立较为贴合实际的伸缩结构优化模型,解决分析了建模过程中所涉及的一些关键步骤进行了分析,为下一步研究伸缩起皱缺陷奠定了优化模型基础。 零件优化模型预先用SolidWorks制作,零件优化模型可以实时修改和更新。系统中零件设计、装配设计和工程制图具有完全的相关性,零件的修改会引起装配图的修改。而且基于ANSYS,对影响其伸缩起皱的相关参数进行分析,主要研究了相对伸缩机构半径、相对壁厚、杨氏模量、泊松比以及其相互作用对伸缩结构伸缩起皱缺陷影响规律的分析。结果表明,随着相对伸缩机构半径的增加、相对壁厚的增加、杨氏模量的增加和泊松比的增加,伸缩起皱波纹度变小。 根据已获得的伸缩结构伸缩起皱波纹度与其他

Global site tag (gtag.js) - Google Analytics