博客> XMPP即时通信项目开发
XMPP即时通信项目开发
2017-12-12 05:18 评论:0 阅读:472 小白进化史
ios XMPP即时通讯 好友列表 添加好友

1.定义: XMPP是一种基于标准通用标记语言的子集XML的协议。用于即时通信(IM)以及在线现场探测。这个协议可以最终允许因特网用户向因特网上其他任何人发送即时消息,即使用户之间的操作系统和浏览器不同。(通过网关解决此问题。)(此协议底层也是Socket)

2.分类: XMPP目前被IETF (1)核心的XMl流传输协议 (2)基于XMLFreeEIM流传输的即时通信扩展应用。

3.组成: (1)RFC 3920XMPP:核心。定义了XMPP协议框架下应用的网络框架,引入了XML Stanza(XML节),并规定XMPP协议在通信过程中使用的XML标签。 (2)RFC 3921:用户成功登陆到服务器之后,发布更新自己的字啊线好友管理、发送即时聊天消息等业务。所有业务是通过三种基本的XML字节来完成的:IQ Stanza(IQ字节),Presence Stanze(Presence节),Message Stanza(Message节)。 4.当前即时通信模式 Client —>Service—>Client(C/S系统架构:XMPP协议) Client—>Client(非XMPP协议) 5.三大部分 客户端 服务器 网关 XMPP网关:特点是可以和其他即时通讯系统交换信息和用户在线状况。由于协议不同,XMPP和其他系统交换信息必须通过协议的转换来实现。 6.XMPP系统结构图

 F406B2D1-7436-4F80-BE3C-973A05DF96D2.png

7.XMPP地址格式 (1)一个实体在XMPP网络结构中被成为一个接点,他有一个唯一的标识符jabber idenrifier(JID),即实体地址,用来表示一个Jabber用户,但是它也可以标识其他的内容,比如一个聊天室。 (2)一个有效的JID包括: 域名:网关或者服务器。 节点:通常表示一个向服务器或网关请求和使用网络服务的实体(比如客户端)。 源:附属信息。

8.XMPP消息格式 (1)Message消息 To :接受方 from :发送方 Text:发送的信息 (2)Presence (3)IQ(查询:get,set查询)

Tip2:配置服务器和客户端 1.服务器创建和配置 2.客户端配置 3.XMPPFramework框架xmpp core主要类 (1)XMPPStream:XMPP的核心类,所有的拓展类和定制类都需要添加它。 (2)XMPPJID :节点、域名、来源(唯一标识一个用户) (3)XMPPElement:是基本的XML数据流编辑类,用于三中主要的XMPP元素:XMPPIQ/XMPPMessage、XMPPresence。继承自NSXMLElement, (4)XMPPReconnect:意外断开会自动重连。 (5)XMPPRoster:管理花名册(管理好友) (6)XMPPRosterMemoryStorage:用于存储好友信息(存储好友)。 (7)XMPPMessageArchiving:提供聊天模块 (8)XMPPMessageArchivingCoreDataStorage:聊天存储模块

Tip3:XMPPStream的使用 1.配置导入XMPPFramework框架的开发环境 第一步导入XMPPFrame框架 第二步添加支持所需要的库文件:libxml2.tbd、libresolv.tbd。 第三步修改配置文件:TARGETS->Bulid Settings ->Header Search Paths 添加/usr/include/libxml2。 第四步创建PCH文件并添加如下内容 (1)#import 因为此框架中没有引入UIKit框架 (2)#define kXMPP_MESSAGE_CHANGE @"kXMPP_MESSAGE_CHANGE" 框架中的一个宏定义,在PCH中声明一下,也可以直接去掉,但是去掉的话会有消息延迟。

Tip4:项目开发与测试 1.安装并配置一个本地的ejabberd服务器,创建一个admin用户并为其添加好友。 2.创建XMPP即时通信项目。 3.用MAC自带的信息中的客户端登陆admin用户下的一个好友:Mary,好友列表中该用户状态由离线变为在线。 4.图片展示:

 1.登陆界面.png

 2.显示好友列表.png

 3.添加好友.png

 4.登陆MAC自带客户端.png

 5.更新好友列表.png

5.项目源码地址下载:http://code.cocoachina.com/user/

收藏
0
sina weixin mail 回到顶部