前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS XMPP系列教程(Swift)二 框架介绍

iOS XMPP系列教程(Swift)二 框架介绍

作者头像
码客说
发布2019-10-22 14:18:33
8310
发布2019-10-22 14:18:33
举报
文章被收录于专栏:码客码客

介绍

XMPP框架分成两部分

  • XMPPCore
  • 拓展 XEP

XMPPCore 的类

  • XMPPStream
  • XMPPParser
  • XMPPJID
  • XMPPElement
  • XMPPIQ
  • XMPPMessage
  • XMPPPresence
  • XMPPModule
  • XMPPLogging
  • XMPPInternal
  • XMPPStream

XMPPStream

XMPPStream是xmpp的核心,这是你需要接触的主要类,所有的拓展类和定制类需要添加它,它由一些有趣的功能设计,让框架灵活、可拓展和更加容易在它之上开发

XMPPParser

XMPPParser 是XMPPStream 使用的一个类,你一般不需要和它打交道

XMPPJID

XMPPJID 提供多个JID(Jabber Identifier) 实现,支持解析JID,并解析JID的多种格式,它实现了NSCopying代理,因此JID可以被用作NSDictionary的key。它也实现了NSCoding协议。

XMPPElement

XMPPElement 是基本的类,用于三种主要的XMPP 元素 XMPPIQ,XMPPMessageXMPPPresence。 XMPPElement 继承自NSXMLElement

客户端与服务器交互的三个实体:IQ、Message、Presence

继承关系

  • XMPPIQ -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObject
  • XMPPMessage -> XMPPElement-> NSXMLElement -> NSXMLNode -> NSObject
  • XMPPPresence -> XMPPElement -> NSXMLElement -> NSXMLNode -> NSObjec

NSXML 有一个NSXMLElement+XMPP拓展,这个拓展提供了多个转换方法让你的代码更加简洁可读

IQ (Info / Query)

一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行响应。例如,client在stream的上下文中插入一个元素,向Server请求得到自己的好友列表,Server返回一个,里面是请求的结果。 主要的属性是type。包括: Get :获取当前域值。类似于http get方法。 Set :设置或替换get查询的值。类似于http put方法。 Result :说明成功的响应了先前的查询。类似于http状态码200。 Error: 查询和响应中出现的错误。 例子:

代码语言:javascript
复制
<iq from="alice@wonderland.lit/pda"  
    id="rr82a1z7" 
    to="alice@wonderland.lit"  
    type="get"> 
  <query xmlns="jabber:iq:roster"/> 
</iq>
Message

是发送的消息实体,保存消息的信息

代码语言:javascript
复制
<message  
  to="lily@jabber.org/contact"  
  type="chat" > 
    <body> 你好,在忙吗</body> 
</message>
Presence

presence用来表明用户的状态,如:online、away、dnd(请勿打扰)等 用来发送用户的状态

XMPPMddule

XMPPMddule 提供可选的附加拓展功能,如果你做应用,你可能创建你自己的类,注册和接受代理。然而,如果你正在实现基本的XEP或者你想要添加特定拓展,你需要创建顶层的XMPPModule。

XMPPLogging

XMPPLoging 提供一个非常快速、高效、灵活的日志框架

XMPPInternal

XMPPInternal 仅仅是一和core和多个拓展有关的个网络素材

拓展

添加modules

xmpp框架自带了一些拓展,当然你也可以写你希望的拓展,我们不会review任何可用的拓展,但我们会列一些例子

  • XMPPReconnect 意外断开会自动重连
  • XMPPRoster 提供基本的roster名册
  • XMPPRoom 提供多用户聊天支持
  • XMPPPubSub 公开subscribe

所有的概念就说到这里下一篇介绍具体应用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • XMPPCore 的类
    • XMPPStream
      • XMPPParser
        • XMPPJID
          • XMPPElement
            • 客户端与服务器交互的三个实体:IQ、Message、Presence
            • IQ (Info / Query)
            • Message
            • Presence
          • XMPPMddule
            • XMPPLogging
              • XMPPInternal
              • 拓展
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档