XMPP协议(IM)

XMPP协议(IM),第1张

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

全称:可扩展通讯和表示协议

简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。XMPP is the IETF's formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。

XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;

核心的XML流传输协议

基于XMLFreeEIM流传输的即时通讯扩展应用

XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。

XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。

XMPP的扩展协议Jingle使得其支持语音和视频。

XMPP的官方文档是RFC 3920.

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

传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。

以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message>...</message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。

目前不少IM应用系统如:Google公司的Google Talk以及Jive Messenger等开源应用,都是遵循XMPP协议集而设计实现的,这些应用具有很好的互通性。

1, xmpp是最早由jabber提出的一整套即时通讯协议,开发即时通讯软件用。

2, 不是

3,阅读协议,开发出符合协议的程序即可

4,Jabber服务器有Openfire等

目前出现的IM产品,其通信方式主要有两种:

一种通信方式是把服务器作为客户端之间通信的媒介。

服务器负责对整个网络进行监听,每个客户端启动后,与服务器的监听端口进行连接,服务器派生一个新的工作线程去处理此客户端的请求,并负责将此客户端的请求数据中转到接收方。即客户端之间的连接请求和通信数据均需要通过服务器中转。

这种方式便于对客户端的数据进行流量分析和数据监控,但服务器的性能很容易成为通信的瓶颈。

在线检测即时消息传递。

另一中通信方式是客户端间采用点对点的方式直接进行通信。

此时服务器只负责协助客户端之间建立点对点连接,客户端直接建立连接后则直接进行点对点通信。

SIP协议,基于ip协议。一般用于建立语音和视频通信。目前sip协议已经被制定得较为完善。

xmpp是一种基于xml的协议。不仅可以实现文本之间的传递,也具有灵活的扩展性从而方便地实现更复杂格式文件的即时传递。

目前基本所有的通用IM产品,通信双方都是直接进行通信,而不必通过服务器来中转,造成对于用户间数据的监管非常困难。如此,如何防止商业机密和其他非法信息的传播也是一个重要的安全问题。

xmpp:基于xml很强扩展性,很强灵活性,很好开放性(源码开放),易于实现持久连接,很好安全性。

应用

google 发布世界上首个开源的Html5 sip 客户端

HTML5 SIP客户端是一款开源的,完全利用JavaScript编写的集社交(FaceBook,Twitter,Google+),在线游戏,电子商务等应用于一体。无扩展,无插件或是必备的网关,视频堆栈技术依赖于WebRTC。如同主页里的Demo视频演示,你可以轻松实现Chrome和IOS/Android移动设备之间的实时视频/音频通话。

很适合硬件(内存和运算能力)受限的嵌入式系统使用。

Html5 sip 客户端 新特性包括:

支持Audio / Video通话功能;

支持即时信息;

Presence;

呼叫保持/恢复;

显示呼叫转移;

支持多个账号;

双音多频信号(DTMF)使用SIIP INFO


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/516872.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-20
下一篇2023-06-20

发表评论

登录后才能评论

评论列表(0条)

    保存