博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
了解XMPP
阅读量:5930 次
发布时间:2019-06-19

本文共 2238 字,大约阅读时间需要 7 分钟。

  hot3.png

目前IM即时通信有四种协议:

1.即时信息和空间协议(IMPP)

2.空间和即时信息协议(PRIM)

3.针对即时通讯和空间平衡扩充的进程开始协议SIP

4.XMPP协议:该协议的前身是Jabber,我们采取XMPP协议主来实现IM主要是考虑XMPP协议是以XML为基础的,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的,所以XMPP信息不仅可以是简单的文本,而且可以携带复杂的数据和各种格式的文件。

XMPP的基础部分已经在2002-2004年得到了互联网工程任务组(IETF)的批准,这意味着XMPP在将来就像我们认为理所当然的Internet协议TCP/IP、HTTP、FTP、SMTP、POP一样成为Internet标准。

1、Xmpp协议概述

XMPP(Extensible Messaging and Presence Protocol,前称Jabber)是一种以XML为基础的开放式实时通信协议,是经由互联网工程工作小组()通过的互联网标准。

XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发 送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

可扩展消息处理现场协议(eXtensible Messaging and Presence Protocol , XMPP) 是一种基于可扩展标记语言(eXtensible Markup Language, XML)的近端串流式即时通信协议。它将现场和上下文敏感信息标记嵌入到XML 结构化数据中, 使得人与人之间、应用系统之间以及人与应用系统之间能即时相互通信。XMPP 协议已被批准为互联网即时通信协议标准。

2、Xmpp协议内容

 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过连接到单服务器,然后在之上传输XML。

3、Xmpp协议优点

开放—XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。

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

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

分布式—XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人都可以运行自己的XMPP服务器,使个人及组织能够掌控他们的实时传讯体验。

安全—任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已自带于核心XMPP技术规格中。

可扩展—XML命名空间的威力可使任何人在核心协议的基础上建造客制化的功能;为了维持通透性,常见的扩展由XMPP Standards Foundation。

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

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

4、Xmpp协议缺点

数据负载太重:随着通常超过70%的XMPP协议的服务器的数据流量的存在和近60%的被重复转发,XMPP协议目前拥有一个大型架空中存在的数据提供给多个收件人。新的议定书正在研究,以减轻这一问题。

没有二进制数据:XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供修改二进制数据。因此, 文件传输协议一样使用外部的HTTP。如果不可避免,XMPP协议还提供了带编码的文件传输的所有数据使用的Base64。至于其他二进制数据加密会话(encrypted conversations)或图形图标(graphic icons)以嵌入式使用相同的方法。

5、Xmpp提供电子名片协议

vCard是一种现存的、广泛使用的,用户个人信息存储的标准,有点像是电子名片。基础的功能是存储和获取用户的电子身份,该信息是用XML表示的,数据的存储取决于所有现存的Jabber服务器的实现。

6、XMPP系统特点

客户机/服务器通信模式、分布式网络、简单的客户端、XML的数据格式。

转载于:https://my.oschina.net/guyson/blog/220207

你可能感兴趣的文章
Python学习笔记
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>
python(3.x) 实现AES 加解密
查看>>
如何用 React 实现滚动动画
查看>>
踩坑:Vue2.0与1.0命名的区别
查看>>
React 组件通信之 React context
查看>>
在Ubuntu下搭建微服务开发环境
查看>>
Activity的显示之ViewRootImpl初探
查看>>
DB2学习记录:基础部分
查看>>
highcharts 在angular中的使用
查看>>
Spring Boot - 表单校验(JSR303&Hibernate Validator)
查看>>
利用docker调试OpenStack服务
查看>>
ZooKeeper 可视化监控 zkui
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
什么是MVVM
查看>>
V8 中的 Fast 属性
查看>>
2017-07-17 前端日报
查看>>
Spring Boot中使用 Spring Security 构建权限系统
查看>>
关于前置自增和后置自增的有趣小测试
查看>>
编写react组件最佳实践
查看>>