XMPP协议及实践

一、XMPP协议

XMPP (Extensible Messaging and Presence Protocol)是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有很强的可扩展性。XMPP的前身是Jabber。

1、XMPP中的几个重要概念:

JID:即Jabber ID。xmpp网络有一个或多个地址jid,  [email protected]/study组成:节点、域、资源(带有资源的jid是完整jid,没有资源的jid是裸jid),其中节点和资源是可选的,域是必选的。jid的资源部分会标识一个特定的客户端xmpp链接,对于xmpp客户端来说,每个链接均被指派一个资源。

XMPP中定义了三个角色,客户端,服务器,网关

通信能够在这三者的任意两个之间双向发生。

服务器同时承担了客户端信息记录,连接管理和信息的路由功能。

网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。

客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。

XML流:其中的stream标签就是所谓的XML Stream。

XML节:在<stream>与</stream>中间的那些<message>...</message>这样的XML元素就是所谓的XML Stanza

2、XMPP工作原理:

二、XMPP环境

1、服务器软件

2、客户端软件

三、XMPP实践

1、iOS上用XMPP开发IM软件

2、Android上用XMPP开发IM软件

未完。。。

时间: 2024-10-23 00:46:43

XMPP协议及实践的相关文章

.net平台 基于 XMPP协议的即时消息服务端简单实现

.net平台 基于 XMPP协议的即时消息服务端简单实现 昨天抽空学习了一下XMPP,在网上找了好久,中文的资料太少了所以做这个简单的例子,今天才完成.公司也正在准备开发基于XMPP协议的即时通讯工具所以也算是打一个基础吧!如果你还没有了解过XMPP请先阅读附录中链接的文章,本实例是基agsXMPP上开发的,agsXMPP是C#写的支持开源XMPP协议软件,我们可以在agsXMPP上快速构建自已的即时通讯平台,我的这个例子只是修改了服务器端,因为agsXMPP本身自带的服务器端没有实现聊天功能.

XMPP协议、IM、客户端互联详解

导读 对于推送,IM服务器,目前可以使用一些厂家提供的SDK来实现,但是我们的老板又总是担心使用别人的SDK,假如别人的服务出现问题,或者别人偷看咱们的信息,那岂不是出现很大问题了 聊一聊xmpp的服务器openfire和测试客户端spark 1.什么是XMPP 这里说一下XMPP,我在前几节说的sdk汇总文章提到的部分推送,IM的SDK提供商用的是XMPP协议,当然也有是自己实现的协议的,例如腾讯.XMPP简单的来说,就是一个发送与接收之间定义的规则,不过这个协议和我们传统的协议有点不同,它不

XMPP协议的原理介绍

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探測.它在促进server之间的准即时操作.这个协议可能终于同意因特网用户向因特网上的其它不论什么人发送即时消息,即使其操作系统和浏览器不同. XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议.XMPP眼下被IETF国际标准组织完毕了标准化工作.标准化的核心结果分为两部分: 在IETF 中,把IM协议划分为四种协议,即即时信息和出席协议(Instant Messaging

iOS xmpp协议实现聊天之openfire的服务端配置(一)

今天弄这个openfire服务端的配置直接苦了一逼,不过好在最后终于配置好了.首先感谢@月光的尽头的博客给了我莫大的帮助.切入正题,首先说一下iOS xmpp协议实现聊天openfire服务器配置所需要的东西: 1.openfire软件,我用的是 Openfire 3.9.3,下载地址:http://www.igniterealtime.org/downloads/index.jsp 2.MySql数据库,我用的是mysql-5.1.63,下载地址:http://dev.mysql.com/do

XMPP协议错误码

302 重定向 尽管HTTP规定中包含八种不同代码来表示重定向,Jabber只用了其中一个(用来代替所有的重定向错误).不过Jabber代码302是为以后的功能预留的,目前还没有用到 400 坏请求 Jabber代码400用来通知Jabber客户端,一个请求因为其糟糕的语法不能被识别.例如,当一个Jabber客户端发送一个的订阅请求给它自己活发送一条没有包含"to"属性的消息,Jabber代码400就会产生. 401 未授权的 Jabber代码401用来通知Jabber客户端它们提供的

XMPP协议

http://xmpp.org/ XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性. XMPP(Extensible Messaging and Presence Protocol, 可扩展消息处理现场协议)是 基于可扩展标记语言(XML )的协议,它用于即时消息(IM)以及在线现场探测.它在促进服务器之间的准即时操作.这个协议可能最终允许因特网

Tigase开发笔记1:深入认识XMPP协议

要学习基于XMPP协议的IM开发,首先要熟悉XMPP协议本身. XMPP协议的组成 主要的XMPP 协议范本及当今应用很广的XMPP 扩展: RFC 3920 XMPP:核心.定义了XMPP 协议框架下应用的网络架构,引入了XML Stream(XML 流)与XML Stanza(XML 节),并规定XMPP 协议在通信过程中使用的XML 标签.使用XML 标签从根本上说是协议开放性与扩展性的需要.此外,在通信的安全方面,把TLS 安全传输机制与SASL 认证机制引入到内核,与XMPP 进行无缝

基于XMPP协议的aSmack源码分析

在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar. Reader和Writer 在asmack中有两个非常重要的对象PacketReader和PacketWriter,那么从类名上看Packet + (Reader/W

xmpp协议的使用

最近学了xmpp感觉学的很乱,想好好整理一下,于是今天找了点时间,把xmpp的搭建和工程的创建一步步进行说明 第一步 xmpp环境的搭建 所需的工具包 搭建环境需要如下所示的包 1 安装xampp-osx 安装完后,运行选择Manager Services 启动所有的Service 注:如果启动失败,请确保安装了javaForOSX2014,也就是java的类库(对于之前没有安装java环境的电脑来说,首先请安装java的环境) 2 当所有工程启动后,在浏览器中输入127.0.0.1,看看是否能