- 浏览: 3582700 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
XMPP协议实现原理介绍
本文介绍XMPP协议原理及相关信息。
XMPP协议简介
XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。
在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
1. 什么是XMPP ?
XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分; 核心的XML流传输协议 基于XML流传输的即时通讯扩展应用 XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
2. XMPP的基本网络结构是怎样的?
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
3. XMPP通过TCP传什么了?
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。
XMPP协议工作原理:
4. XMPP协议地址格式:
5. XMPP消息格式:
6. 核心的XML流传输协议
基于XML FreeEIM流传输的即时通讯扩展应用
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
XMPP的扩展协议Jingle使得其支持语音和视频。
XMPP的官方文档时RFC 3920.
7. XMPP应用示例
举个例子看看所谓的XML流是什么样子的?
以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message>...</message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。
8. XMPP系统特点:
1)客户机/服务器通信模式;(2)分布式网络;(3)简单的客户端;(4)XML的数据格式。
9.通俗解释:
其实XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。
完毕。
发表评论
-
android离线
2019-11-04 21:25 309https://www.jianshu.com/p/fdfc4 ... -
android 异步更新
2015-07-11 22:42 1510http://www.apkbus.com/forum.php ... -
仿微米
2015-06-26 10:22 0http://www.javaapk.com/source/4 ... -
仿微信
2015-06-26 10:21 1925http://www.javaapk.com/source/1 ... -
网易客户端
2015-06-26 10:20 1612http://www.javaapk.com/source/4 ... -
仿朋友圈
2015-06-26 10:18 1707http://www.javaapk.com/source/8 ... -
仿朋友圈
2015-06-26 10:13 1845http://www.eoeandroid.com/threa ... -
全国ABC查询
2015-06-26 10:07 1385IM 功能 环信云 信息统计 Umeng 分享Umeng 更新 ... -
android 判断网络
2015-06-25 16:00 1274http://www.cnblogs.com/renqingp ... -
android 多彩表格
2015-05-31 16:06 1485http://blog.csdn.net/conowen/ar ... -
android socket
2015-05-31 16:01 1652http://blog.csdn.net/conowen/ar ... -
微信播放语音3
2015-02-25 12:00 1441http://download.csdn.net/detail ... -
微信语音播放2
2015-02-25 11:57 1375http://download.csdn.net/detail ... -
微信语音播放
2015-02-25 11:56 1726http://www.apkbus.com/android-1 ... -
超强的资料整合
2015-01-05 11:04 1231http://zz563143188.iteye.com/bl ... -
最强开发资源平台大合集
2015-01-04 14:50 1893程序员代码应用开发平 ... -
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
2014-09-04 15:45 1388http://blog.csdn.net/vipzjyno1/ ... -
android应用推广
2014-09-03 23:25 1322应用推广不必愁,有米 ... -
android 图片异步加载
2014-09-03 16:47 1140http://www.csdn.net/article/201 ... -
android hander的使用
2014-09-02 23:46 1369http://www.cnblogs.com/xiaoran1 ...
相关推荐
本文将深入探讨如何在Android上基于XMPP协议实现消息推送,以及相关的技术细节。 首先,理解XMPP的基本原理是至关重要的。XMPP建立在TCP连接之上,通过XML流传输数据,使得服务器和客户端能够进行双向通信。它提供...
总结,使用XMPP协议实现Android消息推送,需要理解XMPP的工作原理,同时在客户端和服务器端进行相应设置。在整个过程中,安全性和性能优化是至关重要的,确保了消息的准确、及时传递,并提供了稳定的服务。
**Android推送原理** 在Android平台上,实现XMPP推送需要结合Google的GCM(Google Cloud Messaging)或FCM(Firebase Cloud Messaging)。虽然GCM已被FCM取代,但两者都利用XMPP协议与服务器交互。 1. **初始化**:...
AndroidPN-server-0.5.0可能是一个定制的XMPP服务器实现,专为Android推送通知服务设计。 在实际应用中,XMPP协议不仅支持文本消息,还可以处理音频、视频、文件传输等多种类型的数据。通过使用XEP(XMPP Extension...
**MQTT协议实现Android消息推送** 在移动应用开发中,实时消息推送是一项关键功能,它能让用户及时接收到新信息、通知...通过理解MQTT的工作原理并结合提供的资源,开发者可以有效地实现Android应用的消息推送功能。
通过这种方式,XMPP协议实现了Android推送服务中数据的有效传输,为用户提供实时、可靠的通知体验。 总之,XMPP协议作为Android实现推送方式解决方案中的关键技术,以其强大的功能和灵活性,为开发者提供了构建高效...
总之,创建Android的XMPP客户端涉及到的知识点包括XMPP协议原理、Android开发环境、Smack库的使用、网络连接管理、异步编程、消息收发、群组聊天、文件传输以及推送通知的集成。通过熟练掌握这些技术,开发者可以...
在本文中,我们将深入探讨如何使用XMPP协议在Android平台上实现一个完整的即时通讯(IM)系统,包括客户端和服务器端的实现。XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准,广泛用于...
在这个话题中,我们将深入探讨Android推送服务的工作原理、实现方式以及相关组件。 首先,Android推送服务的核心在于实现服务器与客户端之间的通信。常见的推送服务有Google的Firebase Cloud Messaging (FCM),它是...
8. **推送通知**:当应用在后台时,可以借助第三方推送服务(如Google FCM或Apple APNs)将服务器端的消息推送到手机通知中心,提示用户查看新消息。 在MyXmpp这个项目中,很可能包含了实现上述功能的相关代码和...
今天,我们将全面介绍 Android 中实现消息推送的 7 种主流解决方案。 一、前言 随着运营需求的增强,消息推送在 Android 开发中应用的场景是十分常见的。作为开发者,不要有需求就接,应该多思考、多理解用户 / ...
6. **实时推送**:为了提高用户体验,可以结合Google的Firebase Cloud Messaging (FCM) 或者其他推送服务,实现实时的消息推送,即使应用在后台也能接收到新消息。 7. **UI设计**:创建友好的用户界面是吸引用户的...
- "XMPP协议原理介绍.mht" 可能是关于协议的概述,涵盖了XMPP的核心概念和技术细节。 - "开源项目之Android 推送框架(androidpn) - banketree - 博客频道 - CSDN_NET.mht" 提到了一个Android推送框架,这将涉及XMPP...
XMPP是一种开放的即时通讯协议,广泛用于实现聊天、推送通知等多种通讯需求。ASMACK是Smack库的一个分支,专门为Android平台优化,解决了原生Smack库在Android上的兼容性和性能问题。 首先,理解XMPP的基本工作原理...
通过上述内容,我们可以看出,构建一个Android版XMPP客户端涉及到的知识点广泛,包括但不限于XMPP协议原理、Openfire服务器的配置和管理、Android应用程序开发、网络通信技术以及用户体验设计。每一个环节都需要深入...
在Android平台上,信息推送服务是应用开发者不可或缺的功能之一,它使得应用可以在后台高效地与服务器进行通信,即使用户没有...这份资源对于学习和实践Android推送服务,尤其是基于XMPP的实现,具有很高的参考价值。
本项目“见证Android消息推送时刻(源码)”聚焦于实现基于XMPP(Extensible Messaging and Presence Protocol)协议的Android消息推送系统。XMPP是一种开放标准的即时通讯协议,广泛应用于各种聊天、通知和协作应用...
- **Smack库**:在Android中,开发者通常使用Smack库来实现XMPP协议,它提供了API用于连接Openfire服务器,发送和接收消息。 - **连接管理**:客户端需要建立与Openfire服务器的连接,处理登录、心跳保活、断线重...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息...给定的项目资源提供了实现这一功能的基础,对于想要研究Android推送或者XMPP协议的人来说,这是一个很好的起点。
此外,Android原生的Cloud to Device Messaging (C2DM)服务,虽然已被Google的Firebase Cloud Messaging (FCM)取代,但对理解Android推送机制仍有一定参考价值。C2DM是Google为开发者提供的从服务器向Android应用...