概述
现在很多软件都加入了聊天功能,也有许多公司直接提供了app聊天的组件,简单集成就行,但是弊端在于组件一是要收费,二是不灵活,没法自定义
聊天的协议例如微信 QQ之类都是自己定义的协议,服务器也是自己研发的,效率也会高一点,他们都是用的json作为通讯的数据格式,一个小公司去开发这些是不现实的,幸好有开源的XMPP协议,对应的服务器是openfire XMPP协议的弊端在于数据格式用的早年比较流行的XML,所以传输的数据会稍多一点,不过现在网速已经提上去,这点基本上可以忽略不计
所以小公司用XMPP来做聊天是个不错的选择
环境搭建
服务段
openfire的下载地址
软件下载之后直接安装就行
注意的是 openfire需要的端口一定要对外开放
iOS端
XMPP只是一个协议,iOS有对应的实现 相应的类库可以在github下载
具体的添加步骤为
- 添加以下的文件夹到工程中 Authentication Categories Core Utilities
- 添加Vendor下面的CocoaLumberjack、CocoaAsyncSocket、KissXml、libidn文件夹道工程中,选择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.framework、libxml2.dylb、Security.framework、libresolv.dylib。 最后确保编译通过。
- 如果用的swift在桥接头文件中添加引用
#import "XMPP.h"
#import "DDXML.h"
#import "XMPPFramework.h"
#import "DDLog.h"
#import "DDTTYLogger.h"
iOS端(方法2)
上面的都不用配置 直接用pod引用
pod 添加依赖
代码语言:javascript复制pod 'XMPPFramework'
添加引用
代码语言:javascript复制import XMPPFramework
Build Settings中几种Search Paths
- Framework Search Paths 主要搜索.framework文件
- Hearder Search Paths 主要搜索.h文件
- Library Search Paths 主要搜索.a文件