iOS XMPP系列教程(Swift)一 概述与环境搭建

概述

现在很多软件都加入了聊天功能,也有许多公司直接提供了app聊天的组件,简单集成就行,但是弊端在于组件一是要收费,二是不灵活,没法自定义

聊天的协议例如微信 QQ之类都是自己定义的协议,服务器也是自己研发的,效率也会高一点,他们都是用的json作为通讯的数据格式,一个小公司去开发这些是不现实的,幸好有开源的XMPP协议,对应的服务器是openfire
XMPP协议的弊端在于数据格式用的早年比较流行的XML,所以传输的数据会稍多一点,不过现在网速已经提上去,这点基本上可以忽略不计

所以小公司用XMPP来做聊天是个不错的选择

环境搭建

服务段

openfire下载地址

软件下载之后直接安装就行

注意的是 openfire需要的端口一定要对外开放

iOS端

XMPP只是一个协议,iOS有对应的实现
相应的类库可以在github下载

具体的添加步骤为

  • 添加以下的文件夹到工程中
    Authentication
    Categories
    Core
    Utilities

  • 添加Vendor下面的CocoaLumberjackCocoaAsyncSocketKissXmllibidn文件夹道工程中,选择copy。

  • 添加苹果的libxml2库 到工程文件中。
    Targets
    -> BuildSettings
    -> Search Paths
    -> Header Search Paths
    -> +
    -> /usr/include/libxml2

  • 添加苹果的静态链接库 到工程文件中。
    Targets
    -> BuildSettings
    -> Search Paths
    -> Library Search Paths
    -> +
    -> $(PROJECT_DIR)/[项目名]/Lib/Lib-ObjectC/XMPPFramework/Vendor/libidn

    路径请根据自己实际的路径配置

  • 添加苹果的动态链接库。
    Target
    -> Build Phases
    -> Link Binary With Libraries
    -> +
    -> 选择CFNetwork.frameworklibxml2.dylbSecurity.frameworklibresolv.dylib
    最后确保编译通过。

  • 如果用的swift在桥接头文件中添加引用

1
2
3
4
5
#import "XMPP.h"
#import "DDXML.h"
#import "XMPPFramework.h"
#import "DDLog.h"
#import "DDTTYLogger.h"

iOS端(方法2)

上面的都不用配置 直接用pod引用

pod 添加依赖

1
pod 'XMPPFramework'

添加引用

1
import XMPPFramework

Build Settings中几种Search Paths

  • Framework Search Paths
    主要搜索.framework文件

  • Hearder Search Paths
    主要搜索.h文件

  • Library Search Paths
    主要搜索.a文件