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
- XMPP高级编程---使用Jquery和Javascript学习笔记
- XMPP高级编程---使用Jquery和Javascript学习笔记二
- 《XMPP高级编程 使用JavaScript和jQuery》
- JavaScript高级编程(学习笔记)
- javascript内核高级编程_学习笔记
- javascript和jquery 学习笔记
- accp6.0 《使用javascript增强交互效果》学习笔记ch4 DOM高级编程
- JavaScript高级编程学习笔记:第2章
- javascript高级编程学习笔记 DOM操作(一)
- JavaScript高级编程笔记(1)
- JavaScript高级编程阅读笔记
- jQuery高级编程(2)javascript基础
- javascript高级程序设计学习笔记
- JavaScript高级程序设计 学习笔记
- javascript高级程序设计学习笔记
- JavaScript高级程序设计--学习笔记
- JavaScript高级程序设计学习笔记
- 《JavaScript高级程序设计》学习笔记
- Android 中的ListVIew
- 【JAVA资料免费下载】158个JAVA免豆精品资料汇总
- 使用NSThread创建线程
- 费氏搜寻法之算法分析与实现
- boost使用(六)
- XMPP高级编程---使用Jquery和Javascript学习笔记
- PHP中::、->、self、$this操作符的区别
- linux遇到的问题汇总记录
- 英雄会编程挑战之回文数
- Uncaught [CKEDITOR.editor] The instance "content1" already exists.
- 1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
- 8 个免费实用的 C++ GUI 库
- XHTML 1.0的四种DTD声明
- 如何调出快捷设置断点的左边栏