XMPP高级编程---使用Jquery和Javascript学习笔记

来源:互联网 发布:万能搬家软件下载 编辑:程序博客网 时间:2024/06/06 10:56

 XMPP(eXtensiable Messaging and Presence Protocol,可扩展想消息处理和现场协议)是一种用来处理小型结构化数据段的协议。在此基础上可以用来构建

大规模即时通信系统、Internet游戏平台、搜索平台、协议空间.可以开发类似微博、微信通信功能及应用。Google Talk原来也支持XMPP,可以据说是用关闭Google Talk

不在支持XMPP.这位技术领导者也许又有什么新想法吧.

         一、XMPP协议格式

XMPP是用XML数据进行数据的通信。XMPP是用XML很重要的一方面是在XML的可扩展性。这样使得向XMPP中添加向前或者向后的新功能也很简单。在XMPP中XML

组织成一对流:每个流有: 开始元素==========XMPP节(其他顶级元素)========结束元素 构成。XMPP节是通信的核心部分节示例如下

<message to ='user1@a.com'from = 'user2@b.com'type = 'chat'><body> message from user2 to user2</body></message>
XMPP客户端先发送给服务端,服务端处理消息的处理,如果目的在本服务器就直接交付否则发送给目的XMPP服务器。XMPP是为了短小信息设计的,不适合大型二进制数据

通信。

XMPP使用XMPP节作为通信的核心部分,那么节又有多少分类哪?XMPP节其实有三种基本节分别为:<prensence>(出席)、<message>(消息)、<iq>(信息与查询)

----------(1)presence节用来控制并报告实体的可访问性包括“在线”,“离线”,“离开”,“请勿打扰”等还可以用来建立和终止向其他实体发布出席订阅。<presence>通过发送给

  服务器不带to的节表示自己出席情况,可以通过<show>\<status>\<priority>显示额外出席信息。出席订阅者会收到被订阅者的信息情况。

-----------(2)Message节用来从一个实体向另一个实体发送消息。<message>节采用|发送后不管|型,没有内在可靠性,消息发送出去不知道是否传送出去及何时到达。

消息类型使用type属性可以定义为:chat\error、normal、groupchat或者headline内容可以包含在body或者thread,thread用来表示相同的对话。

------------(3)IQ节为XMPP通信提供请求与相应机制。允许获取和设置查询<iq>节有四种也是通过type属性定义:分别为:IQ-get、IQ-set、IQ-result、IQ-error

  二、XMPP生命周期

XMPP生命周期为:首先建立XMPP服务器连接==========建立流通过<stream:stream>打开流=============发送数据。。连接阶段就是建立客户端与服务端的连接。

建立了连接后就建立流连接服务器会发送<stream:feature>显示XMPP服务器器支持的功能。

        三、XMPP寻址

XMP网络上每一个实体都有一个或者多个地址JID,看上去像邮箱地址: darcy@pemberlery.lit 每个JID都有三部分,节点、域、资源构成,域部分是必学的,其他的可选

JID分为完整JID和裸JID,裸JID是完整JID去除资源部分如完整JID:test@test.cn/library 那么他的裸JID为: test@test.cn


0 0
原创粉丝点击