博客> 网络技术之五XMPP
网络技术之五XMPP
2019-08-23 01:30 评论:1 阅读:1650 Iven_Ma
ios 网络

1.XMPP协议概述

2.XMPP系统结构与工作原理

3.XMPP特性

4.使用XMPP实现即时通信

一.XMPP协议系统结构 1.XMPP是基于XML开放式的即时消息传递和现场服务协议,用的是客户端-服务端(c\s)的系统架构。 2.XMPP定义了三个角色:客户端,服务端,网关 3.通信可以在这三者中任意两者双向发生。 4.客户端利用xmpp(基于tcp/ip)访问server,传输的是xml数据流。 5.xmp系统结构图

 屏幕快照 2016-04-07 18.33.42.png

6.xmpp网关 ①xmpp突出特点是可以和其他通信系统交换信息和用户在线状态。由于协议不同,xmpp和其他系统交换信息必须通过协议的转换来实现。 ②目前几种主流即时通信协议都没有公开,所以xmpp服务器本身并没有实现和其他协议的转换,但他的架构允许协议的转换。实现这个特殊功能的服务端在xmpp架构里称为网关(gateway)。 ③从这个角度讲,xmpp网关就是xmpp向外暴露了一个可以兼容其他主流通信协议的接口。基于此,我们可以实现相应的通信协议来实现xmpp与本协议的相互转换和通信。

7.xmpp客户端 xmpp设计的一个标准是必须支持简单的客户端。一个xmpp客户端必须支持以下功能: ①通过tcp套接字与xmpp服务器进行通信 ②解析组织好的xml信息包 ③理解消息数据类型 概括来说就是xmpp把相关更多功能的实现放在服务端去实现和处理,这样使得客户端相对解放出来。 xmpp客户端和服务端通过xml在tcp套接字的5222端口进行通信,而不需要客户端直接进行通信。

8.xmpp服务端 xmpp服务端遵循两个法则: ①监听客户端,并直接与客户端应用程序进行通信。 ②与其他xmpp服务器进行通信

9.xmpp的地址格式 一个实体在xmpp网络结构中被称为一个接点,他的唯一标识符jabber identity(jid),即实体地址,用来表示一个jabber用户。 一个有效的jid包括以下元素: ①域名:通常指网络中的网关或者服务器 ②节点:通常表示一个向服务器或者网关请求和使用网络服务的实体。 ③源:通常表示一个特定的回话,链接,或者附属某个节点ID实体相关实体的对象。

10.xmpp的消息格式 xmpp定义了3个顶层xml元素:message,presence,IQ

:用于在两个jabber用户发送信息。 to:标记消息接收方 from:标记消息发送方 text:要发送给对方的消息 例:

<body>hello world</body>

用来表明用户状态

From ‘lili@jabber.com/contact' To ‘yeoman@jabber.com/contact'

一种请求/响应机制 从一个实体发送请求,另一个实体接收请求,并进行响应。 iq的主要属性是type。包括: get:取得当前域值 set:设置或者替换get取得值 result:说明成功响应了先前的的查询。 error:查询和响应中出现的错误

11.xmppFramework框架 ①xmppFramework框架分为两部分:(1)xmpp core (2)拓展xep ②xmppStream:xmppStream是xmpp的核心,这是你需要接触的主要类,所有的拓展类和定制类需要添加他。 ③XMPPJID提供多个jid实现,支持解析jid,并解析jid的多种格式,他实现了NSCopying代理,因此JID被用作NSDictionary的key。他也实现了NSCoding协议。 ④xmppElement是基本的xml数据流编辑类,用于三种主要的xmpp元素XMPPID,XMPPMessage,XMPPPresence。 ⑤XMPPReconnect:意外断开后会自动重连。 ⑥XMPPRoster:提供基本的roster名册模块管理好友 ⑦XMPPRosterMessageStorage:用于存储好友信息 ⑧XMPPMessageAchiving:提供聊天模块 ⑨XMPPMessageAchivingCoreDataStorage:聊天信息存储模块 ⑩登录服务器

 屏幕快照 2016-04-07 18.22.00.png

链接和登陆后验证的代理方法:  屏幕快照 2016-04-07 18.23.28.png

发送在线消息:  屏幕快照 2016-04-07 18.24.05.png

获取所有好友信息  屏幕快照 2016-04-07 18.24.41.png

添加好友以及监听好友状态的代理方法  屏幕快照 2016-04-07 18.25.21.png

收藏
0
sina weixin mail 回到顶部