IOS即时通讯XMPP搭建openfire服务器
一、下载并安装openfire
1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版
比如:Openfire 3.8.1,下载后的文件:openfire_3_8_1.dmg
2.点击安装,并执行默认操作

3.启动openfire服务
在系统偏好设置的其他里,点击openfire偏好

启动后,点击Open Admin Console按钮,自动在浏览器中打开本地web配置页面http://localhost:9090/setup/index.jsp
二、配置openfire服务器
1.设置语言,选中文

2.主机设置
设置主机的访问ip地址

注意:域不能是机器名,否则会如下错误:
HTTP ERROR: 500 INTERNAL_SERVER_ERROR
本地的域,要设置为127.0.0.1
3.数据库设置
如果要设置外部数据库(推荐,比如:MySQL),选择标准数据库连接

4.设置数据库连接

(1)数据库驱动选择:MySQL,前提是已安装MySQL(具体的安装方法可以参考上一篇:mac上安装MySQL)
(2)JDBC驱动,默认不变
com.mysql.jdbc.Driver
(3)数据库URL:
形式如下:
jdbc:mysql://你的主机名:端口号/数据库名称
这里设置为
jdbc:mysql://localhost:3306/openfire
其中主机名[host-name]改为localhost,
其中数据库名称[database-name]改为openfire
解决数据库字符编码问题,可以在后面加
?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
最终的url形式是
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
注意:前提是已存在一个名为openfire的数据库,否则会报如下错误,连接配置不成功
The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error.
前期的MySQL数据库准备工作如下:
<1>设置/usr/local/openfire文件夹的访问权限为可读写
方法1:在finder中前往文件夹/usr/local/,右键openfire文件夹,显示简介
点击如图右下角中的锁图标解锁,并设置权限为:可以读写

方法2:打开终端,输入如下命令
sudo chmod 777 /usr/local/openfire
其中777表示授权可读写权限,000表示无访问权限
<2>在终端中,登陆MySQL
mysql -u root -p
然后输入数据库的root密码
<3>创建数据库openfire
create database openfire;
<4>导入openfire资源文件夹 resources/database下的数据表
use openfire;
source /usr/local/openfire/resources/database/openfire_mysql.sql
在终端出现一排导入过程

<5>刷新权限
flush privileges;
<6>退出MySQL
exit
(4)用户名和密码
这里的用户名密码,是访问MySQL数据库时使用的帐号:root,和安装MySQL设置的root密码
5.特性设置
如果不打算使用LDAP,则保持默认设置

6.设置openfire服务器管理员的帐号和密码

可以随便填写一个管理员邮箱,输入要设置的密码
完成注册

7.登陆管理控制台
默认的管理员帐号是“admin”,默认管理员密码“admin”,如果上面设置了新密码,则管理员密码是新密码

如果想去掉默认的admin帐号,并自定义,需要如下操作
(1)在终端中,登陆具体的数据库(openfire)
mysql -u root -p openfire
然后输入数据库的root密码
(2)删除表“ofUser”中的admin帐户
delete from ofUser where username='admin';
(3)创建自定义管理员(用户名:xiaodao,密码:123)
INSERT INTO ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) VALUES ('xiaodao','123','123','Administrator','xiaodao@sunyard.com','0','0');
注意:如果重设了用户名,必须重启openfire服务器

8.后台控制界面

三、卸载openfire
1.停止服务
在系统偏好设置的其他里,打开openfire偏好设置

点击Stop Openfire按钮,停止服务

2.删除文件
打开终端,输入以下命令
sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist
其中第一条命令之后,需要输入本机管理员密码
IOS即时通讯XMPP搭建openfire服务器的更多相关文章
- IOS即时通讯XMPP搭建openfire服务器 分类: ios技术 2015-03-07 11:30 53人阅读 评论(0) 收藏
一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...
- ios 即时通讯 xmpp
[iPhone高级] 基于XMPP的IOS聊天客户端程序(XMPP服务器架构) http://blog.csdn.NET/kangx6/article/details/7739828 [iPhone高 ...
- (转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端
主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.J ...
- iOS 即时通讯 + 仿微信聊天框架 + 源码
这些你造吗? 即时通讯(IM),在IOS这片江湖里面已经算是一个老者了,我这小旋风也是在很早以前巡山的时候,就知道有即时通讯这个妖怪,以前也多多少少接触过一些,在造APP的时候用过,哎呀,说着说着就感 ...
- iOS 即时通讯,从入门到 “放弃”?
原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. — ...
- iOS即时通讯之CocoaAsyncSocket源码解析三
原文 前言 本文实例Github地址:即时通讯的数据粘包.断包处理实例. 本文旨以实例的方式,使用CocoaAsyncSocket这个框架进行数据封包和拆包.来解决频繁的数据发送下,导致的数据粘包.以 ...
- iOS即时通讯之CocoaAsyncSocket源码解析五
接上篇:iOS即时通讯之CocoaAsyncSocket源码解析四 原文 前言: 本文为CocoaAsyncSocket Read篇终,将重点涉及该框架是如何利用缓冲区对数据进行读取. ...
- iOS即时通讯之CocoaAsyncSocket源码解析四
原文 前言: 本文为CocoaAsyncSocket源码系列中第二篇:Read篇,将重点涉及该框架是如何利用缓冲区对数据进行读取.以及各种情况下的数据包处理,其中还包括普通的.和基于TLS的不同读取操 ...
- iOS即时通讯之CocoaAsyncSocket源码解析二
原文 前言 本文承接上文:iOS即时通讯之CocoaAsyncSocket源码解析一 上文我们提到了GCDAsyncSocket的初始化,以及最终connect之前的准备工作,包括一些错误检查:本机地 ...
随机推荐
- required 引发的小小思考
原创:转载请注明出处 首先,因为遇到问题如下: class MainTabBar: UITabBar { override init(frame: CGRect) { super.init(frame ...
- [转]解决LinearLayout中控件不能居右对齐
在LinearLayout布局时使用右对齐(android:layout_gravity="right")控件对齐方式不生效,需要设置 android:layout_weight= ...
- AutoTile 自动拼接(五) 学习与实践
今天不讲 权值检索,考虑到后期 自动拼接 做出来 更好玩,操作更方便.所以 今天我 补充一节, 网格计算与操作. 具体就是这么个效果,和地图编辑器一样,不过图块还是没有自然的拼接,这个一定一定是 下一 ...
- POJ1182--食物链(经典并查集)并查集看不出来系列2
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 65906 Accepted: 19437 Description ...
- AS3条件编译
package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { s ...
- Dev之ChartControl控件(一)
ChartControl控件主要包括Chart Title,Legend,Annotations,Diagram,Series五部分:如图: 1. 用RangeControl控件控制ChartCon ...
- NYOJ 925 国王的烦恼
从最后一天开始往前加边. 同一天的边同时加到图上,加完之后检查集合数量是否和没加之前有变化. 有变化的话,答案就+1. #include<cstdio> #include <iost ...
- HDU 1814 Peaceful Commission
2-SAT,输出字典序最小的解,白书模板. //TwoSAT输出字典序最小的解的模板 //注意:0,1是一组,1,2是一组..... #include<cstdio> #include&l ...
- Mybatis学习(5)高级映射
需求: 一.一对一查询 查询订单信息,关联查询创建订单的用户信息: orders--->user:一个订单只由一个用户创建,一对一 orders表 和 user表: 1)使用resultType ...
- C++中运行外部程序
关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项: [1]定义头文件 必须定义以下两个头文件: #include <shlobj.h& ...