iOS开发拓展篇-XMPP简单介绍json
1、即时通信简单介绍浏览器
一、简单说明服务器
即时通信技术(IM)支持用户在线实时交谈。若是要发送一条信息,用户须要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容网络
有许多的IM系统,如AOL IM、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通信协议的实现,因此即时通信技术的核心在于它的传输协议架构
协议用来讲明信息在网络上如何传输,若是有了统一的传输协议,那么应当能够实现各个IM之间的直接通信,为了建立即时通信的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通信对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通信协议(PRIM)及基于XML且开放的可扩展通信和表示协议(XMPP)协议(常称为 Jabber 协议)框架
业界通过屡次努力,试图统一各大主要IM供应商的标准(AOL、Yahoo 及 Microsoft),但无一成功,且每一种IM仍然继续使用本身所拥有的协议工具
2.遵照XMPP即时通信协议
设计一款全世界都使用的即时通信协议,不管使用什么即时通信软件,均可以互联互通。网站
3.即时通信在垂直社交中的意义spa
和第一代大而全的水平网站(又称综合性网站)不一样,垂直网站注意力集中在某些特定的领域或某种特定的需求,提供有关这个领域或需求的所有深度信息和相关服务,做为互联网的新亮点,垂直网站正引发愈来愈多人的关注。在愈来愈多的网络吸引老百姓的注意力时,网民却逐渐走出时髦、好奇的初级阶段,不断在网上寻找着实际、实用和实惠。随着移动互联网应用的发展,如今愈来愈多的App正在向垂直应用迁移,垂直应用中同类用户群体之间的沟通,产生聚合就显得尤其重要了,所以目前国内市场的XMPP应用开发的人才需求很是大操作系统
4.XMPP的起源
XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP做为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。当时的即时消息传递网络是私有的,不适合企业使用。XMPP前身是Jabber(1998年),是一个开源组织定义的网络即时通讯协议
XMPP是一个分散型通讯网络,这意味着,只要网络基础设施容许,任何XMPP用户均可以向其余任何XMPP用户传递消息。多个XMPP服务器也能够经过一个专门的“服务器-服务器”协议相互通讯,提供了建立分散型社交网络和协做框架的可能性
尽管XMPP的出现是为了知足“我的-我的”即时消息传递的要求,但它彻底没必要局限于此任务
2、XMPP相关
1.XMPP介绍
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。这代表XMPP是可扩展的。能够经过发送扩展的信息来处理用户的需求,以及在 XMPP的顶端创建如内容发布系统和基于地址的服务等应用程序。并且,XMPP包含了针对服务器端的软件协议,使之能与另外一个进行通话,这使得开发者更容易创建客户应用程序或给一个配置好的系统添加功能
XMPP的核心XML流传输协议的定义使得XMPP可以在一个比以往网络通讯协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议可以很是漂亮
XMPP的即时通信扩展应用部分是根据IETF在这以前对即时通信的一个抽象定义的,与其余业已获得普遍使用的即时通信协议,诸如AIM,QQ等有功能完整,完善等先进性
XMPP的扩展协议Jingle使得其支持语音和视频,目前iOS尚不支持
XMPP的官方文档是RFC 3920
XMPP协议曾经是Google力推的即时通讯协议,其表明做品是GTalk。
注意:相对xml,json更高效一些。
2.Google Talk说明
Google Talk是Google的IM工具,除了具备IM功能外,另外还加上了Voip功能,“界面清新大方”,可直接连接Gmail,接受查看邮件。因为Google Talk是基于Jabber开源标准,这种标准容许用户和其它的即时讯息系统相连,好比苹果电脑的iChat,GAIM,Trillian Pro以及Psi。Google Talk只可以在Windows平台上运行。Google Talk的用户没法使用这种软件与AIM,MSN Messenger或者雅虎Messenger的用户进行互通。
2013年5月,在Google I/O大会上,Google推出统一跨平台聊天应用Hangouts(环聊)取代Google Talk。Google Hangouts不支持XMPP协议。Google Hangouts用户与非Google服务如XMPP协议的强有力支持者jabber.org之间的交流没法进行。
目前,Google Wave是基于XMPP协议的,而且Google还开发Jingle扩展进行基于XMPP协议的视频聊天。尽管Google还没有宣布Talk的关闭日期,不过从Google关闭Reader和iCal支持来看,Talk关闭之日不会太远
3.XMPP定义
XMPP:The Extensible Messaging and Presence Protocol(可扩展通信和表示协议)
XMPP可用于服务类实时通信、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通信中经常使用的开放式协议
XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。促进服务器之间的准即时操做。这个协议可能最终容许因特网用户向因特网上的其余任何人发送即时消息,即便其操做系统和浏览器不一样
4.基本结构
XMPP是一个典型的C/S架构,而不是像大多数即时通信软件同样,使用P2P客户端到客户端的架构,也就是说在大多数状况下,当两个客户端进行通信时, 他们的消息都是经过服务器传递的。采用这种架构,主要是为了简化客户端,将大多数工做放在服务器端进行
XMPP中定义了三个角色,客户端,服务器,网关。通讯可以在这三者的任意两个之间双向发生
服务器同时承担了客户端信息记录,链接管理和信息的路由功能。 网关承担着与异构即时通讯系统的互联互通,异构系统能够包括SMS(短信),MSN,ICQ等
基本的网络形式是单客户端经过TCP/IP链接到单服务器,而后在之上传输XML流