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 ...
随机推荐
- 《深入理解java虚拟机》:类的初始化
深入理解java虚拟机>:类的初始化 类从被载入到虚拟机内存中開始.到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.当中验证.准备.解析3个部分统称为 ...
- POJ--2516--Minimum Cost【最小费用最大流】
链接:http://poj.org/problem?id=2516 题意:有k种货物,n个客户对每种货物有一定需求量,有m个仓库.每一个仓库里有一定数量的k种货物.然后k个n*m的矩阵,告诉从各个仓库 ...
- excel表如何实现多if选择结构多分支判断
excel表如何实现多if选择结构多分支判断 一.总结 一句话总结:把多if分支转换成单if分支相加. 也可以if分支,也可以lookup函数. 1.CHOICE: +2 if band A; +1 ...
- Echarts Y轴min显示奇葩问题(做此记录)
项目需求是根据不同情况显示最大值最小值 有9-35 12-50 9-50 三种情况 前面两种可以显示出来 但是9-50的话 最小值9显示不出来 8,7等就可以显示出来 后面想到强制从最小值 ...
- Servlet 获取多个参数
<html><head> <title>First Servlet</title></head><body bgColor=" ...
- Java开源电商项目比較
这里比較的都是国外的开源项目,备选项目有: Smilehouse Workspace.Pulse.Shopizer.ofbiz.bigfish.broadleaf 1.Smilehouse Works ...
- ViewPager+Fragmrnt最简单结合方法
Fragment和ViewPager 本博文系本菜鸟第一次博文展示,有错误之处请虽然提出 FragmentPagerAdapter 谷歌官方提供了这么一个adapter(FragmentPagerAd ...
- J2SE核心开发实战(一)——认识J2SE
认识J2SE 一.课程简单介绍 在本章学习開始前,你应该具备一些Java的基础知识. 我们将在本章来认识J2SE,并复习一下前面学过的面向对象的相关知识. 注:全部的蓝色文字都是带超链接的,这些链接是 ...
- JS如何动态生成变量名[重点]
解决方案: function create_variable(num){ var name = "test_"+num; //生成函数名 ...
- Mongodb总结3-稍微封装一下
上次发表的2,纯粹是Demo,演示API的用法. 今天,稍微封装了下,看得更清楚. 考虑到不容易做得很有通用性,所以封装的一般,换种场景需要直接修改代码,但是有一部分是可以复用的. 最近项目,很可能只 ...