当前位置:文档之家› Android基于XMPP协议的数据推送技术

Android基于XMPP协议的数据推送技术

深入学习XMPP协议

一.XMPP(协议简介)

XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML 环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。

二.IM(即时通讯软件简介)

Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。

三.本文主要内容

本文主要讲解在android使用xmpp协议进行即时通信,所涉及3个主要的东西,它们是openfire、smack和spark,这个三个东东结合起来就是完整的xmpp IM实现,这里简单介绍一下这3个东东在下文的作用:

openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。

Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。

Spark 是IM客户端的实现,其实就是使用了smack 的api实现的。

数据通讯具体实现的流程:

四.开发具体配置环境:

1.配置openfire服务器

Openfire是一个强大的即时消息(IM)和聊天服务器,它实现了XMPP协议,可以使用它轻易的构建高效率的即时通信服务器.

其安装和部署都十分简单,并利用Web进行管理。单台服务器可支持上万并发用户,由于是采用开放的XMPP协议,可以使用各种支持XMPP协议的IM客户端软件登陆服务。

安装前准备工作:

一:Java运行环境(已安装则可跳过此步骤)

官方下载地址:https://www.doczj.com/doc/913605455.html,/technetwork/java/javase/downloads/index.html 二:数据库(之前已安装则可跳过此步骤)

数据库可以使用DB2,Oracle,MySQL,PostgreSQL,SQL Server等其中任意一种

安装前准备工作完成后:

一:建立数据库

a.建立数据库,记下数据库名,如OpenfireServer。

b.在数据库管理系统下建立新用户,如OpenfireUser。

选择SQL server身份验证,把强制密码过期的勾去掉,只勾上强制实施密码策略。

在下面的数据库下拉列表中选择OpenfireServer,然后确定即可。

c.然后在OpenfireServer数据库目录下,在其安全性中,新建一个用户,用户名任取。

登录名选择上面创建的OpenfireUser,架构选择db_owner,数据库角色成员身份选择db_owner,

二:安装Openfire

a.到官方下载最新版的Openfire安装包

官方网址为:https://www.doczj.com/doc/913605455.html,/projects/openfire/

b.双击Openfire安装包开始安装

安装完毕后,会有提示框提示是否登录,此时先放着不动

三:执行数据库脚本

a.到Openfire安装目录下:如D:\Program Files\Openfire\resources\database

下面有几个数据库的SQL脚本,直接拖动到SQL Server Studio中执行,

执行前确保可用数据库下拉列表选中的是OpenfireServer。

b.接着连接对象资源管理器,使用SQL Server身份验证方式,输入用户名OpenfireUser,密码

尝试进行登录操作。若成功登陆,则证明数据库建立成功。

四:首次设置Openfire

a.点击Openfire提示框中Launch Admin 按钮,进入首次设置页面

b.语言选择简体中文

数据库选择标准数据库连接

选择相应的数据库驱动类型;URL一栏中,把[hostname]改成当前的主机名;

把[database]改成数据库名OpenfireServer;接着分号后面的Appname全部去掉;

点击continue ,设置密码——>>结束

五:重启Openfire

然后登录管理页面,进行Openfire管理。

至此,恭喜您,Openfire部署安装完成。

配置成功如果以后ip地址变了,那肯定又是开不了,解决办法请移步:

https://www.doczj.com/doc/913605455.html,/HappySheepherder/article/details/4707124

配置成功后,在服务器创建一个简单的用户来测试,然后安装spark,设置好服务器的ip 与端口,使用刚才创建的用户登录,登录OK说明服务器成功搭建。

2.客户端配置要求

(1)android 2.2平台及以上。

(2)asmack-jse.jar开发必须包。

(3)客户端Eclispse,服务端Myeclipse IDE开发环境。

五.具体实例展示

1.先建一个Android项目。

2.导入项目必须的XMPP协议jar包。

4通过XMPP协议规则,进行数据通讯。

最后我们就可以利用connection进行连接,登录,注册....

最后如有错误请包容,学习资料如有不够深入,请选择其它专业资料。谢谢.....

xmpp协议的使用

在android里面用的smack包其实叫做asmack,该包提供了两种不同的连接方式:socket和httpclient。该并且提供了很多操作xmpp协议的API,也方便各种不同自定义协议的扩展。我们不需要自己重新去定义一套接收机制来扩展新的协议,只需继承然后在类里处理自己的协议就可以了。而本文今天主要说两点,一点就是消息是如何接收的,另一点就是消息是如何通知事件的。 总的思路 1.使用socket连接服务器 2.将XmlPullParser的数据源关联到socket的InputStream 3.启动线程不断循环处理消息 4.将接收到的消息解析xml处理封装好成一个Packet包 5.将包广播给所有注册事件监听的类 逐步击破 (声明在看下面的文章时,最好先理解一下smack的使用,这样才能达到深入的理解)

(谨记:上图只显示本文章解释所要用到的类和方法,减缩了一些跟本文主题无关的代码,只留一条贯穿着从建立连接到接收消息的线。) 解析这块东西打算从最初的调用开始作为入口,抽丝剥茧,逐步揭开。 1. PacketListener packetListener = new PacketListener() { @Override public void processPacket(Packet packet) { System.out .println("Activity----processPacket"+ packet.toXML()); } }; PacketFilter packetFilter = new PacketFilter() { @Override

基于XMPP协议和Openfire的即时通信系统的开发

万方数据

万方数据

万方数据

基于XMPP协议和Openfire的即时通信系统的开发 作者:潘凤, 王华军, 苗放, 李刚 作者单位:潘凤(成都理工大学信息工程学院,四川,成都,610059;运城学院计算机科学与技术系), 王华军,苗放(成都理工大学信息工程学院,四川,成都,610059), 李刚(华商世纪(北京)科贸发 展股份有限公司) 刊名: 计算机时代 英文刊名:COMPUTER ERA 年,卷(期):2008,(3) 被引用次数:1次 参考文献(5条) 1.许鼎即时通信四种协议简述 2003 2.庞怡即时通讯工具现状及发展趋势分析[期刊论文]-科技情报开发与经济 2006 3.Jason Kichten.李军用基于XML的即时消息开发Jabber 2003 4.Peter S A XMPP Instant Messaging and Presenee 2004 5.Jabber官方组织"Jabber::Protocol" 相似文献(6条) 1.学位论文付莎基于XMPP协议企业级IM的研究与实现2009 近年来即时通信技术的飞速发展使即时通信工具的应用更为广泛,给个人的网络生活、企业的日常办公都带来了极大的便利性与高效性。XMPP( eXtensible Messaging and Presence Protocol)可扩展消息与出席协议技术便是其中较为活跃的一种即时通信技术。由于即时通信工具在企业中的应用给企业的运营管理带来诸多便利,因而在企业中的应用越来越广泛,具有很高的研究与应用价值。 目前常用的即时通信软件的协议种类繁多,本文在研究比较了当前流行的几种协议之后,选用了基于可扩展标记语言XML的XMPP协议,由于其开放性、扩展性、安全性良好等诸多优势,并可以实现与使用其他协议的即时通信软件的互联互通,且发展前景良好,因而对于开发一款企业级即时通信系统有着十分明显的优势。本文从对XMPP协议的介绍与分析入手,首先简要介绍了XMPP协议及其发展,XMPP协议的特点,然后又深入介绍了XMPP协议的内容:XMPP协议的系统构架、地址空间、数据的传输结构、以及通信链路的建立过程等。在对协议进行了深入研究的基础上,根据本文的研究目标,针对企业级即时通信系统的特点进行需求分析,并设计与实现。在实现了即时通信的消息收发、名册管理、出席信息的交换等基本功能的基础上,着重研究了用户的管理控制问题、权限划分、可追溯性管理及功能性、扩展性的要求,实现了会议功能、文件传输,以及广播功能,模拟了与非XMPP系统进行交互的过程。在开源软件系统Openfire及Gloox库的支持基础上,最终设计并实现了一套完善的面向企业级的即时通信系统。 最后对系统进行了测试,完成了测试平台的搭建工作,建立相应的测试用例。系统实验测试的结果表明:系统功能完善、稳定,界面友好简洁,满足企业级即时通信系统的需求。 2.学位论文招俏春基于XMPP协议的即时通讯系统的研究2008 随着互联网的普及和发展,即时通讯已经成为人们交流的重要手段。目前有许多的IM系统,如AOL IM、Yakoo IM和MSN IM,它们使用了不同的技术,而且它们互不兼容。XMPP/Jabber的提出打破了传统即时通信系统之间无法实现互联互通的局面。XMPP对于即时通信是一个开放的基于xml的数据模型和协议,采用了分布式的网络体系机构,模块化可扩展的系统架构,使得扩展它的功能变得简单。 利用Jabber/XMPP的体系结构,构建了一个基于XMPP协议的即时通信系统,包括即时通信系统的客户端和服务器。其中服务器采用开源的Jabber服务器Openfire,客户端基于XMPP核心及扩展协议利用Google Talk的开发包libjingle进行研究开发。设计了一个与Openfire互联通信的客户端系统,实现与客户音的文字、语音、视频、文件及实时数据通信功能;研究了XMPP协议及其在协同通讯领域的应用。 介绍了即时通讯的现状、发展趋势,分析了客户端软件的开发环境和所要用到的几个相关技术。在此基础上设计出基于)(MPP协议的能与Jabber服务器Openfire实现互通的客户端软件的总体架构和基本模型,并对即时通讯客户端的具体设计进行了全方位的阐述:在XMPP流通信基础上的文字通信及扩展的群组通讯;基于JEP扩展协议Jingle协议完善了系统功能,进行了客户问的P2P(Peer-to-Peer,点对点)连接扩展,从而实现了可靠的实时语音视频、文件、实时数据等P2P通信。另外还对客户端设计中的几个关键问题,网络安全机制和带NAT的防火墙穿越等方面的进行了较为深入的研究,并论述了本系统所采用的方案。最后总结了本设计的工作与成果,并提出下一阶段的研究设想。 3.期刊论文路璐.王华军.苗放.李刚.Lu Lu.Wang Huajun.Miao Fang.Li Gang基于Jingle协议及Opnefire的语音通信原理与实现-办公自动化(综合版)2007(12) 本文对Jingle协议及Openfire开源项目进行研究和分析,在此基础上进行点对点语音通信原理的分析和实现,并指出该通信方式的优点和不足. 4.学位论文罗伟基于Android平台的即时通讯系统的研究与实现2009 随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Internet成为现实,移动用户从而可以享受到Internet提供的服务。即时通讯是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信,随着手机的不断普及以及性能的不断提升,为即时通讯系统从传统的PC机到手机的移植提高了很好的条件。而且在中国庞大的手机用户中,通过手机使用即时通讯软件的用户越来越多。当前的手机操作系统都过于封闭 ,各大即时通讯软件采用的通讯协议也不统一,而Android是基于Linux的开源的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android平台和XMPP协议开发即时通讯系统具有很好的应用前景。 本文给出了系统的研究背景,对当前手机操作系统、即时通讯软件和即时通讯协议的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以及Android应用的构成和工作机制,并对Android与其他手机操作系统进行了比较,说明了Android在手机操作系统中的优势。提出了系统的架构 ,以及系统服务器端和客户端的解决方案,采用开源的Openfire作为系统的即时通讯平台,实现移动客户端之间的即时通讯。对系统客户端的组成模块进行了介绍,对即时通讯协议XMPP以及系统的通讯机制进行了分析。针对当前通信数据的安全问题并结合本系统的特点,对IDEA数据加密算法进行了改进,提出了A—IDEA算法的设计,并对两种算法从几个方面进行了对比分析,对于图片文件的加密,采用A—IDEA与RSA算法相结合的方案。对服务器的运行流程进行了分析并对系统客户端进行了详细的设计与实现,对系统进行了部署和测试。 5.期刊论文剧忻.苗放.JU Xin.MIAO Fang基于MINA开发高性能网络应用程序——以实现XMPP协议

XMPP协议即时通讯(Openfire服务器版)

XMPP协议即时通讯(Openfire服务器版) 一、什么是XMPP XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的IM(IM:instant messaging,即时消息)协议之一。 XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML 环境中灵活的发展性。 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。 服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ 等。 XMPP即时通信协议,采用C/S体系结构。基本的网络形式是客户端连接到服务器,然后由服务器去连接到另一个客户端进行两个客户端之间的通信。 而他们传输的是XML流。 XMPP工作原理说明: 所有从一个客户端到另一个客户端的消息和数据都要通过服务器。 1、客户端连接服务器 2、服务器利用本地目录系统的证书对其认证 3、客户端制定目标地址,让服务器告知目标状态 4、服务器查找,连接并进行相互认证 5、客户端间进行交互 二、搭建服务器(Openfire) 通过上述的了解,我们知道要想进行通信,我们必须要有一个服务器。服务器端采用Openfire作为服务器。 允许多个客户端同时登录并且并发的连接到一个服务器上。 服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,客户端与服务器端之间的通信就在该会话的上下文中进行。 首先安装Openfire

点击继续

点击安装 安装成功后再偏好设置中就会有Openfire的图标。点击Openfire的图标

XMPP协议分析-原理篇

XMPP协议分析-原理篇 XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。 XMPP协议特点 1)所有XMPP信息都是以XML为基础的,信息交换的事实标准,扩展性强 2)XMPP系统是一个分布式系统,每台服务器控制自己的资源,但是如果需要,它能与外在的系统进行通 信。XMPP服务器利用开放的XML协议来进行S2S(Serverto Server)通信,就像在C2S(Client to Server)一样。相比之下,大多数的IM系统使用了只是支持C2S/S2C通信的协议,因此Jabber/XMPP服务器具有更大的灵活性。 3)XMPP协议是公开的,程序则开放源代码。定义了客户端和服务器端的交互要经由XML流。普通消息类型(message),如改变状态(presence),传递消息内容或查询/更新(info/quey)应用则用每个指定的命名空间(namespace)来建立。 4)状态(Presence)在整个持久连接中。通过持久连接的有效维持,XMPP协议一直有在网络中维持存在和可用信息的能力。 5)XMPP允许建立并行的TCP套接字连接对所有连接上的客户端和服务器端。一旦建立连接,则只有当状态改变,例如存在的改变,通过这个连接传输数据。既然这个连接是持久的,那么设置、认证、状态查找功能都不用每次都重复执行。这种持久的套接字的连接使得XMPP能够更有效的支持高级的具有存在能力的应用在带宽和处理资源的使用中。 6)Jabber/XMPP系统是模块化的,而且Jabber/XMPP的设计强调如何实现可伸缩性、安全性和可扩展性。 XMPP协议分析 XMPP中定义了三个角色:客户端,服务器,网关。 通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS (短信),MS N,IC Q等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 XMPP的基本网络结构如下: C1----S1---S2---C3 | C2----+--G1===FN1===F C1 符号表示:C1,C2,C3=XMPP客户端;S1,S2=XMPP;服务端G1=在XMPP和使用外部消息网络(非XMPP)的协议之间转换的网;FN1=外部消息网络;F C1=外部消息网络的客户端。 (1)服务器

gopher,协议

竭诚为您提供优质文档/双击可除 gopher,协议 篇一:网络七层模型各层的协议 网络七层模型各层的协议 在互联网中实际使用的是tcp/ip参考模型。实际存在 的协议主要包括在:物理层、数据链路层、网络层、传输层和应用层。各协议也分别对应这5个层次而已。 要找出7个层次所对应的各协议,恐怕会话层和表示层的协议难找到啊。。 应用层 ·dhcp(动态主机分配协议) ·dns(域名解析) ·Ftp(Filetransferprotocol)文件传输协议 ·gopher(英文原义:theinternetgopherprotocol中 文释义:(RFc-1436)网际gopher协议) ·http(hypertexttransferprotocol)超文本传输协 议 ·imap4(internetmessageaccessprotocol4)即 internet信息访问协议的第4版本·iRc(internetRelaychat)

网络聊天协议 ·nntp(networknewstransportprotocol)RFc-977)网络新闻传输协议 ·xmpp可扩展消息处理现场协议 ·pop3(postofficeprotocol3)即邮局协议的第3个版本 ·sip信令控制协议 ·smtp(simplemailtransferprotocol)即简单邮件传输协议 ·snmp(simplenetworkmanagementprotocol,简单网络管理协议) ·ssh(secureshell)安全外壳协议 ·telnet远程登录协议 ·Rpc(Remoteprocedurecallprotocol)(RFc-1831)远程过程调用协议 ·Rtcp(Rtpcontrolprotocol)Rtp控制协议 ·Rtsp(Realtimestreamingprotocol)实时流传输协议 ·tls(transportlayersecurityprotocol)安全传输层协议 ·sdp(sessiondescriptionprotocol)会话描述协议 ·soap(simpleobjectaccessprotocol)简单对象访问

XMPP 协议

XMPP 协议 1. XMPP 优缺点 X MPP (Extensible Messaging and Presence Protocol) (前称Jabber) 是一种以 X ML 为基础的开放式即时通讯协议,是经由互联网工程工作小组 (IETF) 通过的互联网标准。[1] 1.1 XMPP 协议的优点 1.1.1 可扩展性 X MPP 的数据传输基于 X ML 格式,可扩展性强。X MPP 的核心协议栈 (Core Stack) 部分只定义了基础的 Presence,Message,Iq 等最主要数据格式和传输逻辑,更多的功能则通过定义扩展 (Extensions) 实现。 1.1.2 受 IETF 组织规范 Internet Engineering Task Force (IETF) 在2002年开始规范 X MPP 协议,使其协议的修订和扩展的添加都经过严格的流程审核,防止 X MPP 协议因缺乏标准而分裂。并且这也保证了 X MPP 协议是完全开放的。 1.1.3 应用广泛 X MPP 协议的应用比其他开放即时通讯协议更为广泛。较有名的使用 X MPP 协议的聊天服务有 Google Gtalk 和 Facebook Chat 等。此外,X MPP 在各平台下都有若干服务端、客户端和程序库的实现,二次开发时成本较低。 X MPP 协议的可扩展性和开放性是该协议被广泛应用的保证。 1.2 XMPP 协议的缺点 1.2.1 不内置支持二进制数据的传输 X MPP 的核心部分没有包含对二进制数据传输的支持,这使得 X MPP 的基本数据限定在文本文件范围内。X MPP 社区认为,X MPP 应该用于传输 meta 信息,辅助其他应用进行协议握手,X MPP 本身不应负担海量信息的传输。

RFC3920(XMPP协议)中文版

RFC3920 可扩展的消息和出席信息协议(GMPP):核心协议 关于本文的说明 本文为互联网社区定义了一个互联网标准跟踪协议,并且申请讨论协议和提出了改进的建议。请参照“互联网官方协议标准”的最新版本( STD1 )获得这个协议的标准化进程和状态。本文可以不受限制的分发。 版权声明 本文版权属于互联网社区(C)TheInternetSocietP(20GG). 摘要 本文定义了可扩展消息和出席信息协议(GMPP )的核心功能,这个协议采用 GML流实现在任意两个网络终端接近实时的交换结构化信息。GMPP提供一个 通用的可扩展的框架来交换GML数据,它主要用来建立即时消息和出席信息应用以实现RFC2779的需求。 目录 1. 绪论 2. 通用的架构 3. 地址空间 4. GML 流

5. TLS的使用 6. SASL的使用 7. 资源绑定 8. 服务器回拨 9. GML 节 10. 服务器处理GML节的规则 11. GMPP中的GML用法 12. 核心的兼容性要求 13. 国际化事项 14. 安全性事项 15. IANA 事项 16. 参考 1. 绪论 1.1. 概览 GMPP是一个开放式的GML协议,设计用于准实时消息和出席信息以及请求- 响应服务。其基本的语法和语义最初主要是由Jabber开放源代码社区于1999 年开发的。20GG年,GMPP工作组被授权接手开发和改编 Jabber协议以适应 IETF的消息和出席信息技术。作为GMPP工作组的成果,本文定义了 GMPP1.0 的核心功能;在RFC2779[IMP-REQS]中指定的提供即时消息和出席信息功能的扩展,定义在GMPP-IM 协议

物联网四大协议

物联网四大协议物联网协议

协议一:物联网协议XMPP XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 基本网络结构 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 工作原理 XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是关闭流,关闭TCP/IP 连接。

功能 传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。 优点 XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。 缺点 网络通信过程中数据冗余率非常高,网络流量中70% 都消耗在 XMPP 协议层了。对于物联网来说,大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备,省电、省流量是所有底层服务的一个关键技术指标,XMPP协议看起来已经落后了。

XMPP 协议工作流程

XMPP 协议工作流程详解 分类:翻译文章2014-04-23 11:11 2221人阅读评论(0) 收藏举报原文: https://www.doczj.com/doc/913605455.html,.au/content/how-xmpp-works-step-step 作者: Yilun Fan, 日期2011-01-05 13:09 XMPP 核心协议https://www.doczj.com/doc/913605455.html,/rfcs/rfc3920.html XMPP 要点. ? 1. 客户端(C) 和服务器端(S) 通过TCP连接5222端口进行全双工通信. ? 2. XMPP 信息均包含在XML streams中.一个XMPP会话, 开始于 标签, 并结束于标签.所有其他的信息都位于这俩标签之间. ? 3. 出于安全目的考虑, 开始之后, 后续的内容会被适度的使用Transpor Layer Security (TLS) 协商传输和强制性的Simple Authentication 和Security Layer (SASL) 协商传输. ? 4. SASL协商完成后, 一个新的stream 将会被迅速打开, 它将会更加安全和保密.第一步: 打开 stream Client: 客户端发送打开stream 的片段到服务器, 请求一个新的session. [html]view plaincopy 1. 这里“https://www.doczj.com/doc/913605455.html,” 是客户端试图连接的服务器的域名. Server: Server 返回XML stream, 以 开头, 包含要求TLS 或者 SASL 协商谈判之一, 或者2个都要求. [html]view plaincopy

Android基于XMPP协议的数据推送技术

深入学习XMPP协议 一.XMPP(协议简介) XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML 环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。 二.IM(即时通讯软件简介) Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。

三.本文主要内容 本文主要讲解在android使用xmpp协议进行即时通信,所涉及3个主要的东西,它们是openfire、smack和spark,这个三个东东结合起来就是完整的xmpp IM实现,这里简单介绍一下这3个东东在下文的作用: openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。 Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。 Spark 是IM客户端的实现,其实就是使用了smack 的api实现的。 数据通讯具体实现的流程:

基于XMPP协议的即时通信系统服务器集群的研究

基于XMPP协议的即时通信系统服务器集群的研究 陈武,杨世达 武汉理工大学计算机学院,武汉(430071) E-mail:chenwu0211@https://www.doczj.com/doc/913605455.html, 摘要:本文描述了在实现基于xmpp协议的即时通信系统的服务器集群时遇到的关键性问题,从安全、性能和通用性方面考虑提出了解决方案,重点介绍了服务器间的寻址和路由机制、服务期间通信的安全机制、故障转移机制。 关键词:xmpp;集群;服务器;安全 中图分类号:TP319 文献标识码:A 1. 引言 XMPP是一个开放的、基于XML的数据模型和协议。对用户而言,在面对现有的各种即时通讯服务,没有统一标准,无法实现互联互通的局面下,XMPP 的出现实现了整个即时通信服务协议的统一。它提供了一种开放式的、基于XML的、能在分布式网络中传输即时消息和在线发现的标准,并解决了不同IM 系统间互操作的问题[1],但是对于即时消息系统服务器集群的实现并没有统一的标准,各个系统服务器集群的实现不尽相同。 2. 集群技术 2.1集群的概念 简单的说,集群就是两台或多台计算机或节点在一个群组内共同工作。与单独工作的计算机相比,集群能够提供更高的可用性和可扩充性。集群中的每个节点通常都拥有自己的资源(处理器、内存、操作系统),并对自己的用户集负责。集群中的每一个服务器都相当于一个结点,各个结点之间通过网络互联,并且在各个节点上都有集群软件用以实现节结点之间寻址和路由,同时保证各节点间通信时的安全,当某个结点出现故障时能实现故障转移和动态的负载平衡。 2.2集群的体系结构 每个用户都有自己的本地服务器,并从该服务器上接受信息, 所有从一个客户端发给另一个客户端的消息和数据都必须通过服务端。每一个服务器都独立于其他服务器,并且拥有其自身的用户列表,通过Internet这些服务器构成了一个分布式网络。服务器通过发送一个探针了解一个用户是否在线,这是实现即时通信的关键。当用户量不是很大时,一台服务器就可以承受,但当用户量超过服务器所能承受的极限时,我们需要多台服务器来分摊负荷,这就带来了新的问题:但不同服务器下的客户端通信时,服务器之间的交互方式。这就要引入服务器集群的概念。集群就是两台或多台计算机或节点共同工作,与单独的计算机相比,集群具有高效性、稳定性和安全性。集群由授权服务器、应用程序服务器和数据库服务器组成,其结构如下所示:

什么是网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外还需转换其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。 简介 协议是用来描述进程之间信息交换数据时的规则术语(参见“法律学”对于“协议”的定义)。在计算机网络中,两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作达到同步,而信息的交换必须按照预先共同约定好的规则进行。 要素 网络协议是由三个要素组成: 1. 语义:语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成 的动作与做出什么样的响应。 2. 语法:语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。 3. 时序:时序是对事件发生顺序的详细说明。(也可称为“同步”)。 人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。 工作方式 网络上的计算机之间又是如何交换信息的呢?就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,[4]不同的计算机之间必须使用相同的网络协议才能进行通信。 网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种

物联网的七大通信协议

物联网的七大通信协议 通信对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响着物联网的发展。而在通信中,通信协议尤其重要,是双方实体完成通信或服务所必须遵循的规则和约定。 在物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。那么物联网都有哪些通信协议呢?随着iBeacon生产厂家-云里物里科技一起来看下吧

物联网七大通信协议 一、REST/HTTP(松耦合服务调用) REST即表述性状态传递,是基于HTTP协议开发的一种通信风格。 适用范围:REST/HTTP主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。因此适合在物联网的应用层面,通过REST开放物联网中资源,实现服务被其他应用所调用。 特点: 1.REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。 2.客户端和服务器之间的交互在请求之间是无状态的。 3.在服务器端,应用程序状态和功能可以分为各种资源,它向客户端公开,每个资源都使用URI得到一个唯一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。 4.使用的是标准的HTTP方法,比如:GET、PUT、POST和DELETE。 二、CoAP协议 CoAP(Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。 适用范围:CoAP是简化了HTTP协议的RESTful API,CoAP是6LowPAN协议栈中的应用层协议,它适用于在资源受限的通信的IP网络。 三、MQTT协议(低带宽) MQTT(Message Queuing Telemetry Transport),消息队列遥测传输,由IBM 开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。 适用范围:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据传输和监控。

PMON协议通讯程序方案书

PMON协议通讯程序方案书 编制人:李丁山 编制日期:2006-6-15 评审人: 评审日期:

修改历史 评审历史

文档目录 PMON协议通讯程序方案书 (1) 修改历史 (2) 评审历史 (2) 项目背景 (4) 需求简介 (4) 技术解决方案 (5) 开发平台 (5) 系统结构 (5) 报文发送 (6) 报文接收 (7) Life报文发送 (7) Life报文接收 (7) 项目管理方案 (8) 项目管理工具 (8) 项目规模估算 (8) 项目计划 (8) 项目风险 (9)

项目背景 上海大众汽车公司目前生产控制数据的通讯协议是基于德国提供的应用协议PMON,该协议建立在UDP/IP通讯协议基础上,将生产过程数据发送到生产控制服务系统,并从生产控制服务系统获得反馈数据。 由于该协议由德方提供,在应用开发中,只有得到德方的支持才能建立通讯,无论从项目的开发成本,还是项目将来的维护,扩充都非常的昂贵且不方便。因此,上海大众希望能够在充分研究PMON协议的基础上,自主开发一套基于PMON应用协议的通讯程序,为将来的生产应用系统的开发提供公共的通讯基础模块系统。 需求简介 基于目前的理解,本通讯系统需要完成以下功能: 1.通讯连接维护 a)建立UDP网络连接 b)通过指令,建立和PMON Server的应用连接 c)通过指令,断开和PMON Server的应用连接 2.发送数据 a)发送生产过程数据 b)发送协调数据(报文ID) c)分段发送大批量数据 d)发送心跳(Life)数据 3.接受数据 a)接受心跳(Life)数据 b)接受应答数据 c)超时等待数据接受 d)不等待接受数据 e)一直等待接受数据 4.查询通讯的状况 a)通过心跳报文定时检查通讯连接状态 5.通讯队列维护 a)创建通讯队列 b)打开队列 c)关闭队列 d)查询发送队列中的报文数

XMPP协议使用开源jabber(XMPP)协议及openfire架设内部即时通讯服务

XMPP协议使用开源jabber(XMPP)协议及openfire架设内部即时通讯服务 分类:C# jabber/XMPP 2010-12-11 14:59 89人阅读评论(0) 收藏举报Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。 XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的技术来自于Jabber,其实它是 Jabber 的核心协定,所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用,除Jabber 之外,XMPP还支持很多应用。下面就是如何架设内部即时通讯服务的步骤: 第一步:安装Jabber服务器软件 Jabber服务软件有很多,具体可以参考jabber官方网站的列表: Jabber官网地址:https://www.doczj.com/doc/913605455.html,/ 常用Jabber服务器软件:https://www.doczj.com/doc/913605455.html,/software/servers.shtml 其中最为方便安装搭建的无疑是Openfire(Wildfire),一款基于GPL协议开源软件,Openfire有linux、windows和MAC的不同版本,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.doczj.com/doc/913605455.html,/downloads/index.jsp#openfire 最新版本:Openfire 3.3.2 1、Windows版本安装方法: 下载:openfire_3_3_2.exe带java环境版本 安装:直接运行安装文件,程序默认安装至c:/Program Files/Openfire 运行:/bin/openfire.exe 2、Linux/Unix版本安装方法 如果使用rpm包安装,下载:openfire-3.3.2-1.i386.rpm 运行: #rpm -ivh openfire_3_0_0.rpm 默认安装路径位于:/opt/openfire 使用源码包安装,下载:openfire_3_0_0.tar.gz(不带java环境,请自行安装) #tar -xzvf openfire_3_0_0.tar.gz # mv openfire /opt 启动方法: #/opt/openfire/bin/openfire.sh 第二步:配置jabber服务器 Openfire(Wildfire)支持完全的web安装,如果你在本地按安装只需要在浏览器中输入 http://localhost:9090(远程服务器为http://你的服务器地址:9090)即可开始即时通讯服务器配置。(1)语言选择:中文简体

相关主题
文本预览
相关文档 最新文档