陈斌彬的技术博客

Stay foolish,stay hungry

基于 XMPP 的 iOS 聊天客户端程序(原创)

XMPP 协议是一个可用于即时通讯的协议(比如微信的语音聊天等等)。但是基于 XMPP 协议写一个即时通讯功能的 App 不是一件轻松的事情。这份类库就是专门为 iOS 和 Mac 所写的 XMPP 类库,提供了一系列的接口用于写基于 XMPP 的功能。这份类库是 thread-safe 的,基于 GCD

首先下载 xmppframework 这个框架,下载

点 ZIP 下载

img

接下来,用 Xcode 新建一个工程

将以下这些文件拖入新建工程中

img

img

加入 framework

img

并设置

img

注册账号

img

登陆账号

img

接收好友列表

img img img

发送和接收好友信息

img

常见问题

iOS 模拟器上可以接收由别的客户端发送过来的信息。但是因为 iOS 模拟器上发消息就会 crash。*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: sender)'

解决办法:

Adium 打字的时候就会发 msg 为空,加段代码判断一下就好:

if (!msg) return;

找到 KKAppDelegat.m 文件:

img

Resource Reference