xmpp协议的定义?

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。

因此。基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP能够通过发送扩展的信息来处理用户的需求。以及在XMPP的顶端建立如内容公布系统和基于地址的服务等应用程
序。

并且,XMPP包括了针对server端的软件协议,使之能与还有一个进行通话,这使得开发人员更easy建立客户应用程序或给一个配好系统加入功能。

在此我概括一下xmpp协议的优缺点:

长处:

  1. XMPP协议是自由、开放、公开的,并且易于了解。并且在client、server、组件、源代码库等方面,都已经各自有多种实现。

  2. 互联网project工作小组(IETF)已经将Jabber的核心XML流协议以XMPP之名。正式列为认可的实时通信及Presence技术。而XMPP的技术规格已被定义在RFC 3920及RFC 3921。不论什么IM供应商在遵循XMPP协议下,都可与Google Talk实现连接。

  3. 第一个Jabber(如今XMPP)技术是Jeremie Miller在1998年开发的,如今已经相当稳定;数以百计的开发人员为XMPP技术而努力。今日的互联网上有数以万计的XMPPserver运作著。并有数以百万计的人们使用XMPP实时传讯软件。

  4. XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主server。

    不论什么人都可以执行自己的XMPPserver,使个人及组织可以掌控他们的实时传讯体验。

  5. 不论什么XMPP协议的server能够独立于公众XMPP网络(比如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已内置于核心XMPP技术规格中。

  6. XML命名空间的威力可使不论什么人在核心协议的基础上建造定制化的功能。为了维持通透性,常见的扩展有XMPP标准基金会。

  7. XMPP除了可用在实时通信的应用程序。还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。

  8. 用XMPP协议来建造及部署实时应用程序及服务的公司及开放源码计划分布在各种领域;用XMPP技术开发软件。资源及支持的来源是多样的,使得使你不会陷于被“绑架”的困境;

  9. 缺点:

    1. 随着通常超过70%的XMPP协议的server的数据流量的存在和近60%的被反复转发。XMPP协议眼下拥有一个大型架空中存在的数据提供给多个收件人。

      新的议定书正在研究,以减轻这一问题。

    2. XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供改动二进制数据。

      因此。 文件传输协议一样使用外部的HTTP。假设不可避免,XMPP协议还提供了带编码的文件传输的全部数据使用的Base64。至于其它二进制数据加密会话(encrypted conversations)或图形图标(graphic icons)以嵌入式使用同样的方法。

1
0

xmpp即时通讯协议的特性---长处和缺点!的更多相关文章

  1. XMPP即时通讯协议使用(前传)——协议详解

    XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP ...

  2. XMPP即时通讯协议使用(七)——利用Strophe实现WebIM及strophe.plugins插件使用

    Strophe简介与Openfire配置 Strophe.js是为XMPP写的一个js类库.因为http协议本身不能实现持久连接,所以strophe利用BOSH模拟实现持久连接. 官方文档: http ...

  3. XMPP即时通讯协议使用(三)——订阅发布、断开重连与Ping

    package com.testV3; import java.util.List; import org.jivesoftware.smack.ConnectionListener; import ...

  4. XMPP即时通讯协议使用(六)——开发Openfire聊天记录插件

    转载地址:http://www.cnblogs.com/hoojo/archive/2013/03/29/openfire_plugin_chatlogs_plugin_.html 开发环境: Sys ...

  5. XMPP即时通讯协议使用(十二)——基于xmpp搭建简单的局域网WebRTC

    创建HTML和JS ofwebrtc.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  6. XMPP即时通讯协议使用(十)——好友关系状态

    sub  ask  recv 订阅 询问 接受 含义 substatus -1-  应该删除这个好友          Indicates that the roster item should be ...

  7. XMPP即时通讯协议使用(四)——Openfire服务器源码编译与添加消息记录保存

    下载Openfire源码 下载地址:https://www.igniterealtime.org/downloads/index.jsp,当前最新版本为:4.2.3 Eclipse上部署Openfir ...

  8. XMPP即时通讯协议使用(一)——Openfire安装

    Openfire服务器安装 下载地址:https://www.igniterealtime.org/downloads/index.jsp,根据你的操作系统,选择对应的下载版本.本文选择的是openf ...

  9. XMPP即时通讯协议使用(十三)——获取当前在线用户或关闭指定用户

    1.开启REST API插件或根据需求修改其插件源码: 2.添加服务器->服务器管理->系统属性中添加 plugin.restapi.enabled=true 3.pom依赖 <de ...

随机推荐

  1. Trafodion:Transactional SQL on HBase

    Trafodion: Transactional SQL on HBase HBase上实时分布式事务处理 介绍 HBase的SQL能力一直不足.Phoenix缺乏Join能力,eBay提出的kyli ...

  2. 数据存储值归档Archive

    先比較一下各个数据存储之间的关系: 关于归档.是ios中的shu'j数据存储中的一种数据存储方式.以下了解一下归档中的一个实例: 以下的是父类person #import <Foundation ...

  3. lightSlider 好图片轮播插件 支持移动端

    http://jquery-plugins.net/jquery-lightslider-lightweight-responsive-content-slider https://github.co ...

  4. vue-cli 和webpack

    https://note.youdao.com/share/?id=d1851db9f0fe0a691798fac823849564&type=notebook#/C045BC3E7DC144 ...

  5. SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  6. SQLITE数据表主键设置Id自增方法

    SQLITE数据表主键设置Id自增方法 标签: sqliteintegerinsertnulltableapi 2010-01-12 08:39 35135人阅读 评论(8) 收藏 举报  分类: S ...

  7. CListCtrl 隔行变色

    响应消息 ON_NOTIFY(NM_CUSTOMDRAW, ListCtrl的ID, OnNMCustomdrawList) 实现函数OnNMCustomdrawList void CFinishWe ...

  8. 使用IPV6

    使用IPV6 知道IPV6已经很久了,但是一直没有使用过. 我使用的IPV4网络一般是 内网-->外网-->互联网,IPV6也不外乎这样,但是对IPV6而言,必须有它的"世界&q ...

  9. TTL和RS232之间的详细对比

    [背景] 之前就听过TTL,一直没搞懂其和RS232的区别. 最近,打算去买个USB转RS232的芯片,结果找到此产品: 六合一多功能USB转UART串口模块CP2102 usb TTL485 232 ...

  10. Android Notification.setLatestEventInfo弃用和Notification.Builder用法

    今天在学习小米便签的源码的时候,至于源码的地址,http://m.blog.csdn.net/article/details?id=50544248 ,里面有好多github的开源项目,打开项目,报错 ...