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个部分统称为 ...
- Android Studio配置SVN 以及使用代码管理
一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...
- UnrealEngine4针对游戏模式的思考
游戏能够概括为三类:单进程联机(超级玛丽).小规模联机(魔兽争霸.CS),大规模联机(魔兽世界). watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmx1c ...
- Logstash读写性能调整优化
继续
- 洛谷P1143 进制转换
题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入输出格式 输入格式: 输入数据共有三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10 ...
- Python中对于GIL全局解释器锁的一点理解
GIL全局解释器锁 python最初开发时,开发人只考虑到了单核CPU的,为解决多线程运算之间的数据完整性和状态同步选择了加锁的方式.即GIL锁. 而目前的CPU都有多个核心,在运行python的某个 ...
- 【hdu 6181】Two Paths
[链接]http://acm.hdu.edu.cn/showproblem.php?pid=6181 [题意] 让你求从1到n的次短路 [题解] 模板题; 因为点可以重复走; 则一定会有次短路. di ...
- [Vue + TS] Use Properties in Vue Components Using @Prop Decorator with TypeScript
With properties we can follow a one-way parent→child flow communication between components. This les ...
- 有趣的Ruby-学习笔记4
Ruby块 块.在我看来就是插入一段可变的函数 block_name{ statement1 statement2 .......... } 看起来不知道是什么,只是别急,继续往下看. 块函数通过yi ...
- Spark SQL概念学习系列之Spark SQL基本原理
Spark SQL基本原理 1.Spark SQL模块划分 2.Spark SQL架构--catalyst设计图 3.Spark SQL运行架构 4.Hive兼容性 1.Spark SQL模块划分 S ...