相关背景

IM(Instant Messaging)正在被广泛使用,特别是公司与它们的客户互动连接方案以及互联网与Web2.0相关的应用。为了解决即时通信的标准问题,IETF(互联网工程任务组 The Internet Engineering Task Force)成立了专门的小组、研究和开发IM相关协议。

通信协议

PRIM

空间和即时信息协议(Presence and Instant Messaging)

该协议是IETF撰写的关于即时通讯标准协议的早期版本,其抽象模型最早是在2000年2月份提出的RFC2778中提出的。

从2001年起,该项目无任何进展。现在SIP协议以及其衍生出的SIMPLE以及XMPP协议才被认为是即时消息协议的标准实现。

具体参考:

https://en.wikipedia.org/wiki/Presence_and_Instant_Messaging

IMPP

即时信息与空间协议(Instant Messaging and Presence Protocal)

IMPP主要定义必要的协议和数据格式,用来构件一个具有空间接收、发布能力的即时消息系统。到目前为止,IETF已经出了三个草案的RFC,但主要有两个:一个是针对站点空间和即时通讯模型的(RFC 2778);另一个是针对即时通讯/空间协议需求条件的(RFC2779)。RFC2778是一个资料性质的草案,定义了所有presence和IM服务的原理。RFC2779定义了IMPP的最小需求条件。另外,这个草案还就presence服务定义了一些条款,例如运行的命令、信息的格式、以及presence服务器如何把presence的状态变化通知给客户。

具体参考:

https://en.wikipedia.org/w/index.php?title=Instant_Messaging_and_Presence_Protocol&redirect=no

SIP(SIMPLE)

SIP(Session Initiation Protocol)

SIP一种用于信令和控制多媒体通讯session的协议。其最常见的应用是通过SIP协议实现的语音和视频网络电话,以及通过IP网络实现的即时消息通讯。该协议规定了在各通信方中传递的消息,这些消息决定这一个网络电话的建立、终止以及其他必要的步骤。SIP协议可以用于创建、修改和终止一个或多个媒体连接。SIP是一个应用层协议,被设计为独立于下层的传输层。它是一个基于文本的协议,结合了很多HTTP和SMTP协议的元素。SIP协议通常与其他应用层协议一起工作。

SIMPLE(The Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions)

SIMPLE协议是由IETF定义的基于SIP的一个即时消息(IM)和空间协议套。与现今广泛使用的软件实现即时通信与空间协议相比,SIMPLE是类似于XMPP的公开标准。

SIMPLE使用SIP协议发送presence信息。SIP是IETF为终端定制的一种协议,其一般用于建立语音通话中,一旦建立连接后,使用实时协议(RTP)进行实际上的语音发送。但SIP不仅可以用在语音上,也可以用在视频上。SIMPLE被定义为一个建立IM进程的方法。

XMPP

可扩展的消息与空间协议(Extensible Messaging and Presence Protocol)

该协议的前身是Jabber,我们采取XMPP协议主来实现IM主要是考虑XMPP协议是以XML为基础的,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的,所以XMPP信息不仅可以是简单的文本,而且可以携带复杂的数据和各种格式的文件,也就是说XMPP协议不仅可以用在人与人之间的交流,而且可以实现软件与软件或软件与人之间的交流,目前支持XMPP协议的即时通讯工具有Gtalk、FaceBook IM、Twitter、网易POPO等等通讯工具。

协议选型

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

另外,XMPP协议在业界已有成熟的开源实现方案,从开发成本上来讲也是很有优势的。

转载于:https://www.cnblogs.com/jiyuqi/p/5085932.html

基于XMPP的即时通信系统的建立(一)— XMPP基础概念相关推荐

  1. 基于XMPP的即时通信系统的建立(二)— XMPP详解

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

  2. Gprs通信协议服务器,基于GPRS的即时通信系统协议设计与开发

    摘要: 在全球所有的第二代移动通信中,GSM通信网络的使用人数最多,中国目前的大部分移动通信网络都是GSM系统.GSM网络主要用于语音通信,GSM与Internet相结合,出现了GPRS网络,使无线终 ...

  3. 基于Socket的即时通信系统—CS模式(未完待续)

    目录 前言 设计要求 成果展示 模块功能的实现 前言 课设题目,从一开始的手无足措到最后的胸有成足经历了很多,也学到了许多,但是最后答辩时,课设老师感觉题目太简单,问的也就十分简单,本来还有点成就感, ...

  4. 基于加密的即时通信系统设计

    1.1. 系统功能概述 根据自己的实际水平,以及即时聊天的流程需求,基于安全的即时聊天系统应该由服务器端模块.客户端模块.RSA加密解密模块.DES加密解密模块.数字签名和验证模块5部分组成. 根据实 ...

  5. Android学习笔记--基于XMPP的即时通讯

    一.常见即时通讯实现 socket openfire+asmack 环信 信鸽 融云 二.XMPP优势 1. 开放性 XMPP协议是自由.开放.公开的,并且易于了解.而且在客户端.服务器.组件.源码库 ...

  6. 基于CS结构的即时通信系统的设计与实现(QT开发)

    4 基于C/S结构的即时通信系统开发的系统详细设计 4.1 系统设计目标 随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流 方式已经难以满足人们的交流要求,在互联网或局域网上即时的和好 ...

  7. android基于xmpp的即时通讯应用

    xmpp是一个通信协议.因为这是个开放的协议,为了节俭开发成本,很多即时应用都采用了这个协议.Android上最常用的组合asmack +openfire.Asmack是smack的android版, ...

  8. 基于Socket的网络即时通信系统

    摘 要 网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行即时的信息交流.例如,人们可以通过Internet搜索所要的信息,通过网上通信工具聊天,交流信息,上网购物等等. 本课题 ...

  9. 基于TCP Socket和Websocket实现的相互即时通信系统

    目录 摘 要 III ABSTRACT IV 第一章 引言 1 1.1 即时通信系统基本概念 1 1.2 即时通信系统的发展历程 1 1.3 系统研究目的和意义 1 1.4 系统可行性分析 2 第二章 ...

最新文章

  1. 二维码Data Matrix编码、解码使用举例
  2. python查看环境路径
  3. Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题
  4. Python 的 51 个秘密曝光,Github 获 2 万星
  5. xsd文件转图片_如何将图片转化为PDF格式?分享一个超简单的方法给你
  6. 特征筛选6——肯德尔相关系数筛选特征(单变量筛选)
  7. 基于Servlet的技术问答网站系统实现(附源码)
  8. 软件公司所犯的3种最严重的营销错误,你应该来看看
  9. 新手CrossApp 之CAProgress小结
  10. 黑暗传说作弊工具的IOS安卓
  11. 十进制进制法_进制转换方法(进制转换方法的口诀)
  12. 单件模式(Singleton Pattern
  13. [wordpress] Easy Custom Auto Excerpt Options 插件头图样式修改
  14. Xshell连接远程堡垒机【服务器】
  15. 我的世界租赁服务器重置,《我的世界》租赁服自动砍树命令教程 命令方块介绍...
  16. 根据示波器存储的波形数据得到两列信号的相位差(MATLAB源码)
  17. 数字阅读市场陷入两强之争 掌阅能不能守住半壁江山?
  18. node和npm如何升级版本
  19. jnz和djnz_8051的指令
  20. 百度地图聚合中的marker添加label后移动、放大缩小时label消失的问题download

热门文章

  1. [总结]蓝牙各个版本的关系和区别
  2. BTree与B+Tree图文详解
  3. Linux hosts.allow与hosts.deny文件设置
  4. 单商户商城系统功能拆解35—分销应用—分销概览
  5. [导入]剿杀diskman.exe木马病毒
  6. 大数据学习完可以做什么
  7. MHA与PXC的区别
  8. 用java开发android应用(一)
  9. 罗克韦尔自动化牵手FBS2017 推动中国食品饮料行业“智”变
  10. Jenkins2.249-自定义插件安装(十一)