基于XMPP协议的简单IM实现(iOS)(含Demo)
2016-02-16 22:16
495 查看
基于XMPP协议的简单IM实现(iOS)(含Demo)
分类: IOS-XMPP协议学习2013-04-2716:44 1216人阅读 评论(16) 收藏 举报
iOSXMPPIM
【 **********************************************************************************
有网友在资源那留言,但是自己无法评论自己的资源,故在此说明:
1、当初只是简单的学习XMPP,通过自己做了个小Demo来了解其原理,进攻各位初识XMPP的参考
2、服务器采用了openfire的朋友,遇到了诸如列表无法获取等问题,我没试过,会抽时间去实践下,到时候和大家一起探讨,不过还是建议多看看正文前面推荐2位大神的BLOG,先对原理有所认识先~!
3、多谢大家指正,共同探讨,一起进步~!嘿嘿~!
********************************************************************************** 】
进入正题前,首先感谢下 @nomousewch 和 @kangkangz4 两位在我学习过程中对我的帮助,正是参见了两位的Blog,我才完成对XMPP协议的初步学习。
若想了解XMPP协议的简介,请查看 @nomousewch 的Blog。以下主要讲解我如何实现一个基于XMPP的简单即时聊天Demo。
一、XMPP服务器
首先我们需要一个XMPP服务器,在此Demo中,我采用主机作为服务器来使用。
到 XMPP Servers 下载
ejabberd 这个服务器。
我下载的是 ejabberd-2.1.11-darwin-x86-installer.app.zip 这个版本,便于在Mac
下安装:
然后解压安装,一步一步的进行既可。当到达填写服务器域名时,会有个默认值,即你机子的名字,默认既可,不用更改:
然后就是 管理员用户名的填写和密码的填写,这些值自己填写后一定要记住,因为每次登陆服务器需要认证填写。
安装成功后,在安装目录下点击运行 start :
注意:运行前,请检查好自己的网络设置。(我之前老打不开一下界面的网页,提示错误,后来换了个网络就OK,怀疑是因为翻墙的原因)。
点击 admin interface 后,会要求输入用户名 (格式: 管理员名 @ 服务器域名.local )和密码。然后进入到服务器管理界面。
点击 虚拟主机,你会看到一个列表,点击主机列下的服务器域名.local 连接,会展开左侧的列表
点击用户,你就可以创建几个用户,便于之后的数据交互。
以上就是服务器的搭建。下面简单讲解下客户端。
二、XMPP客户端
这里说的客户端,当然不是我们稍后会讲的基于xmpp framework实现的Demo,而是将和我们Demo交互信息的另一方客户端。请到 XMPP
Clients 下载 Adium 这个服务器(当然,你也可以选择其他的客户端,只要支持Mac OS X 既可。
下载后按提示一步一步安装既可。注:你可以添加账号,选择XMPP类型,输入完整的账号及密码,你可以添加多个刚刚你在服务器上创建的用户,同时,你可以选择联系人来互设好友,便于之后的数据交互。
三、基于XMPP协议的简单 IM 实现
1、首先到Git 上下载 xmppframework
框架
2、新建一个项目,将以下文件加入工程中,记住选择Copy
加入所需框架,如下,并设置好路径:
关于代码的解释,望见谅,详见 源码 ,代码结构没怎么优化,忘见谅。
最后的效果图如下:
初步学习XMPP,有不足之处望指点~!
相关文章推荐
- xcode上传ipa遇到的问题
- iOS socket编程
- ios开发小技巧
- iOS之旅--scrollView实现无限轮播
- iOS之旅--开始小demo+整合
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- 通过ios实现RSA加密解密中的 RSAEncryptor.h/m相关代码
- 通过ios实现RSA加密解密中的 NSString+Base64.h/m相关代码
- 通过ios实现RSA加密解密中的 NSData+Base64.h/m相关代码
- 通过ios实现RSA加密和解密
- iOS本地推送(本地通知)
- Xcode预处理命令、控制台调试命令、 iOS事件拦截
- Missing iOS Distribution signing identity for …, 在打包的时候发现证书过期了。
- iOS的DeviceToken随生产环境和开发环境变化
- iOS 开发中,如何实现高效的大量(如十万级)推送通知?
- ios开发有关远程推送的测试版和正式发布版的区别
- 配置超级用户口令(Cisco IOS系统)
- iOS 设置头像圆角效果
- iOS 开发证书签发者无效
- iOS 关联外部应用