XMPP学习教程
2016-06-20 09:56
309 查看
原文链接:http://blog.csdn.net/jiajiayouba/article/details/44755385
此博文参考了以下文章,在此表示感谢:
http://www.cnblogs.com/cokecoffe/archive/2012/08/19/2646245.html XMPP(Extensible Messaging and Presence Protocol) 简介
http://www.cnblogs.com/xiaodao/archive/2013/04/05/3000554.html iOS即时通讯客户端开发之-mac上搭建openfire服务器
http://www.cnblogs.com/ludashi/p/3994612.html iOS开发之使用XMPPFramework实现即时通信
开发环境:
Mac :10.10.1 OS X Yosemite
Xcode:5.1
XMPP 服务端:openfire_3_9_3 (XMPP 服务器,也可以选用其他工具)
XMPP mac 客户端:spark_2_6_3 (来模拟和我们手机客户端通信,也可以选用其他工具)
代码Demo+openfire.dmg+Spark.dmg 打包下载地址:http://download.csdn.net/detail/jiajiayouba/8549187
比如:Openfire 3.9.3,下载后的文件:openfire_3_9_3.dmg
2.点击安装,安装过程中,所有选项默认即可。
3.启动openfire服务
在系统偏好设置,点击openfire偏好
启动后,点击Open Admin Console按钮,
点击后,将自动在浏览器中打开本地web配置页面 http://localhost:9090/setup/index.jsp
4,配置 Openfire 服务器
设置语言,选中文,continue
设置主机的访问ip地址,注意:域不能是机器名,否则会如下错误:HTTP ERROR: 500 INTERNAL_SERVER_ERROR 。这里我们将自己的机器作为本地的域,所以设置为127.0.0.1 ,其他选项默认即可。
数据库设置,如果要设置外部数据库(比如:MySQL),选择标准数据库连接,并参考博文:http://www.cnblogs.com/xiaodao/archive/2013/04/05/3000554.html
。
这里,我们为演示方便,使用嵌入式数据库。
特性设置,默认即可:
设置openfire服务器管理员的帐号和密码,电子邮箱填写自己邮箱即可或者不填写,密码为演示方便,使用 123456
下一步,可以看到,已经提示我们,Openfire 安装完毕。
接下来,点击:登录到管理控制台 。我们要登录管理页面,新建个用户,看下xcode里使用新建的这个用户使用xmpp协议能否成功登录到openfire服务器。
点击后,自动跳转到 管理控制台登录页面:http://localhost:9090/login.jsp
用户名输入:admin ,密码:123456 ,点击登录。进入管理页面,在此可以看到很多服务器信息。
新建用户:
管理页面中,选择:用户/组,可以看到目前为止,只有一个管理员admin账户。选择:新建用户。
用户名填写:test,名称:张三,密码:1234,然后选择:创建用户
创建成功后,我们可以看到test用户的基本信息:
到此,Openfire 服务器的设置告一段落。接下来开始创建 ios 客户端程序。
框架 github 地址:https://github.com/robbiehanson/XMPPFramework
里面文件很多,推荐使用CocoaPods来管理,在对应的工程中用CocoaPods引入XMPPFramework, 在Profile中添加相应版本的XMPPFramework框架,然后pod update一下,安装即可。如果不使用 CocoaPods 的话,手动添加较繁琐,请严格按照如下步骤:https://github.com/robbiehanson/XMPPFramework/wiki/GettingStarted_iOS
2, 具体代码,就不多废话了,直接上干货,下载地址: http://download.csdn.net/detail/jiajiayouba/8549187
代码网上示例也很多,里面只是简单写了下连接、登录、获取好友、收发消息。
欢迎各位留言指正。
一、说明:
XMPP简单教程,从自己搭建服务器,到实现简单XMPP协议的通讯。此博文参考了以下文章,在此表示感谢:
http://www.cnblogs.com/cokecoffe/archive/2012/08/19/2646245.html XMPP(Extensible Messaging and Presence Protocol) 简介
http://www.cnblogs.com/xiaodao/archive/2013/04/05/3000554.html iOS即时通讯客户端开发之-mac上搭建openfire服务器
http://www.cnblogs.com/ludashi/p/3994612.html iOS开发之使用XMPPFramework实现即时通信
开发环境:
Mac :10.10.1 OS X Yosemite
Xcode:5.1
XMPP 服务端:openfire_3_9_3 (XMPP 服务器,也可以选用其他工具)
XMPP mac 客户端:spark_2_6_3 (来模拟和我们手机客户端通信,也可以选用其他工具)
代码Demo+openfire.dmg+Spark.dmg 打包下载地址:http://download.csdn.net/detail/jiajiayouba/8549187
二、搭建Openfire 服务器
1.到 http://www.igniterealtime.org/downloads/index.jsp 下载最新openfire for mac版比如:Openfire 3.9.3,下载后的文件:openfire_3_9_3.dmg
2.点击安装,安装过程中,所有选项默认即可。
3.启动openfire服务
在系统偏好设置,点击openfire偏好
启动后,点击Open Admin Console按钮,
点击后,将自动在浏览器中打开本地web配置页面 http://localhost:9090/setup/index.jsp
4,配置 Openfire 服务器
设置语言,选中文,continue
设置主机的访问ip地址,注意:域不能是机器名,否则会如下错误:HTTP ERROR: 500 INTERNAL_SERVER_ERROR 。这里我们将自己的机器作为本地的域,所以设置为127.0.0.1 ,其他选项默认即可。
数据库设置,如果要设置外部数据库(比如:MySQL),选择标准数据库连接,并参考博文:http://www.cnblogs.com/xiaodao/archive/2013/04/05/3000554.html
。
这里,我们为演示方便,使用嵌入式数据库。
特性设置,默认即可:
设置openfire服务器管理员的帐号和密码,电子邮箱填写自己邮箱即可或者不填写,密码为演示方便,使用 123456
下一步,可以看到,已经提示我们,Openfire 安装完毕。
接下来,点击:登录到管理控制台 。我们要登录管理页面,新建个用户,看下xcode里使用新建的这个用户使用xmpp协议能否成功登录到openfire服务器。
点击后,自动跳转到 管理控制台登录页面:http://localhost:9090/login.jsp
用户名输入:admin ,密码:123456 ,点击登录。进入管理页面,在此可以看到很多服务器信息。
新建用户:
管理页面中,选择:用户/组,可以看到目前为止,只有一个管理员admin账户。选择:新建用户。
用户名填写:test,名称:张三,密码:1234,然后选择:创建用户
创建成功后,我们可以看到test用户的基本信息:
到此,Openfire 服务器的设置告一段落。接下来开始创建 ios 客户端程序。
三、创建XMPP客户端程序
1,XMPPFramework 框架的引入。该框架已将XMPP协议封装,使用该框架,可以很方便的实现我们自己的客户端程序。框架 github 地址:https://github.com/robbiehanson/XMPPFramework
里面文件很多,推荐使用CocoaPods来管理,在对应的工程中用CocoaPods引入XMPPFramework, 在Profile中添加相应版本的XMPPFramework框架,然后pod update一下,安装即可。如果不使用 CocoaPods 的话,手动添加较繁琐,请严格按照如下步骤:https://github.com/robbiehanson/XMPPFramework/wiki/GettingStarted_iOS
2, 具体代码,就不多废话了,直接上干货,下载地址: http://download.csdn.net/detail/jiajiayouba/8549187
代码网上示例也很多,里面只是简单写了下连接、登录、获取好友、收发消息。
欢迎各位留言指正。
相关文章推荐
- 一文读懂马化腾、马云、李彦宏的最新演讲
- Jasper报表开发一
- 使用Symantec代码签名证书对代码进行签名的 5 个理由
- PAC全自动脚本代理
- 扒一扒HTTPS网站的内幕
- 开通博客原因和免责声明-写在所有博客之前
- css优先级机制总结
- iframe height 100% 问题
- 浅谈JavaScript中数组的增删改查
- parse模块
- SpringMVC与Struts2区别与比较
- Spring 自定义标签配置
- ToDictionary
- ubuntu 14.04为root用户开启ssh登录
- Mybatis中配置Mapper的方法
- 用ImageNet的数据集训练Faster R-CNN
- MySQL 拼接成一个字符串
- 自动车牌识别(ANPR)练习项目学习笔记4(基于opencv)
- huststore - 高性能分布式存储服务
- 2016.6.20短期计划