xmpp即时通讯协议的特性---长处和缺点!
xmpp协议的定义?
XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。
因此。基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP能够通过发送扩展的信息来处理用户的需求。以及在XMPP的顶端建立如内容公布系统和基于地址的服务等应用程
序。
并且,XMPP包括了针对server端的软件协议,使之能与还有一个进行通话,这使得开发人员更easy建立客户应用程序或给一个配好系统加入功能。
在此我概括一下xmpp协议的优缺点:
长处:
XMPP协议是自由、开放、公开的,并且易于了解。并且在client、server、组件、源代码库等方面,都已经各自有多种实现。
互联网project工作小组(IETF)已经将Jabber的核心XML流协议以XMPP之名。正式列为认可的实时通信及Presence技术。而XMPP的技术规格已被定义在RFC 3920及RFC 3921。不论什么IM供应商在遵循XMPP协议下,都可与Google Talk实现连接。
第一个Jabber(如今XMPP)技术是Jeremie Miller在1998年开发的,如今已经相当稳定;数以百计的开发人员为XMPP技术而努力。今日的互联网上有数以万计的XMPPserver运作著。并有数以百万计的人们使用XMPP实时传讯软件。
XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主server。
不论什么人都可以执行自己的XMPPserver,使个人及组织可以掌控他们的实时传讯体验。
不论什么XMPP协议的server能够独立于公众XMPP网络(比如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已内置于核心XMPP技术规格中。
XML命名空间的威力可使不论什么人在核心协议的基础上建造定制化的功能。为了维持通透性,常见的扩展有XMPP标准基金会。
XMPP除了可用在实时通信的应用程序。还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。
用XMPP协议来建造及部署实时应用程序及服务的公司及开放源码计划分布在各种领域;用XMPP技术开发软件。资源及支持的来源是多样的,使得使你不会陷于被“绑架”的困境;
缺点:
- 随着通常超过70%的XMPP协议的server的数据流量的存在和近60%的被反复转发。XMPP协议眼下拥有一个大型架空中存在的数据提供给多个收件人。
新的议定书正在研究,以减轻这一问题。
- XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供改动二进制数据。
因此。 文件传输协议一样使用外部的HTTP。假设不可避免,XMPP协议还提供了带编码的文件传输的全部数据使用的Base64。至于其它二进制数据加密会话(encrypted conversations)或图形图标(graphic icons)以嵌入式使用同样的方法。
- 顶
- 1
- 踩
- 0
xmpp即时通讯协议的特性---长处和缺点!的更多相关文章
- XMPP即时通讯协议使用(前传)——协议详解
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP ...
- XMPP即时通讯协议使用(七)——利用Strophe实现WebIM及strophe.plugins插件使用
Strophe简介与Openfire配置 Strophe.js是为XMPP写的一个js类库.因为http协议本身不能实现持久连接,所以strophe利用BOSH模拟实现持久连接. 官方文档: http ...
- XMPP即时通讯协议使用(三)——订阅发布、断开重连与Ping
package com.testV3; import java.util.List; import org.jivesoftware.smack.ConnectionListener; import ...
- XMPP即时通讯协议使用(六)——开发Openfire聊天记录插件
转载地址:http://www.cnblogs.com/hoojo/archive/2013/03/29/openfire_plugin_chatlogs_plugin_.html 开发环境: Sys ...
- XMPP即时通讯协议使用(十二)——基于xmpp搭建简单的局域网WebRTC
创建HTML和JS ofwebrtc.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- XMPP即时通讯协议使用(十)——好友关系状态
sub ask recv 订阅 询问 接受 含义 substatus -1- 应该删除这个好友 Indicates that the roster item should be ...
- XMPP即时通讯协议使用(四)——Openfire服务器源码编译与添加消息记录保存
下载Openfire源码 下载地址:https://www.igniterealtime.org/downloads/index.jsp,当前最新版本为:4.2.3 Eclipse上部署Openfir ...
- XMPP即时通讯协议使用(一)——Openfire安装
Openfire服务器安装 下载地址:https://www.igniterealtime.org/downloads/index.jsp,根据你的操作系统,选择对应的下载版本.本文选择的是openf ...
- XMPP即时通讯协议使用(十三)——获取当前在线用户或关闭指定用户
1.开启REST API插件或根据需求修改其插件源码: 2.添加服务器->服务器管理->系统属性中添加 plugin.restapi.enabled=true 3.pom依赖 <de ...
随机推荐
- Elasticsearch中JAVA API的使用
1.Elasticsearch中Java API的简介 Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等. 通过添加jar包,不需要编写HTTP层的代码就可以开始 ...
- Menu-actionBarMenu字体颜色修改
经常会遇到对menu字体颜色进行修改的情况,今天就遇到了一个.就是在action上有一个menu是黑色的,想要改成白色.方法如下 <style name="Email.Theme&qu ...
- 类名引用static变量好处
不仅强调了变量static的结构,而且在有些情况下他还为编译器进行优化提供了更好的机会.
- 21. Node.Js Buffer类(缓冲区)-(一)
转自:https://blog.csdn.net/u011127019/article/details/52512242
- jQuery post 打开新窗口
//使用POST方式打开界面 function doOpenPostWin(url, args, name, windowParam) { //创建表单对象 var _form = $("& ...
- Android ViewPager嵌套ViewPager滑动冲突处理方法
dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发, 然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没 ...
- powerdesigner逆向自动生成mysql说明文档、PDM
做EDI的项目的时候,用到相关工具powerdesigner,正好我们的一个项目对数据设计阶段时相关文档没有很好的保存下来,查找了一下powderdesigner相关文档,采用逆向工程,从mysql数 ...
- UVA 11557 - Code Theft (KMP + HASH)
UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本.然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值.然后对 ...
- 22. Spring Boot 动态数据源(多数据源自动切换)
转自:https://blog.csdn.net/catoop/article/details/50575038
- 早该知道的 7 个JavaScript 技巧[转]
简洁写法 对象的简写在过去,如果你想创建一个对象,你需要这样: var car = new Object(); car.colour = 'red'; car.wheels = 4; car.h ...