XMPPFramework开发前言
这两天没有更新博客,这里先对大家说声对不起了.因为这几天一直忙于研究XMPPFramework这个开源框架.XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议,同时还提供了用于读写XML的工具.可以帮助我们快速的开发即时通讯功能.XMPPFramework其实以前培训的时候也是有做过的,不过那只是一顿无脑敲,对其原理以及逻辑并没有深入的了解.而且后期开发使用环信、融云三方开发比较多,XMPPFramework用的其实并不是很多.所以作为小白的我将在XMPPFramework这个专题中对XMPPFramework在实际使用过程中的详细逻辑以及遇到的坑进行分享讲解.希望大家关注.
XMPP以及Openfire服务器简介
关于XMPP,它是一种基于标准通用标记语言的子集XML的协议,XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。
如下面经典的XMPP示意图所示.其中Client为客户端,Server为服务器,我们可以允许多个服务器,不管是Client与Server之间,还是Server与Server之间的数据传输都是XML格式的数据流.
在实际开发过程中,Server的搭建并不是需要移动端开进行的.但是我们需要做前期的测试,所以搭建一个服务器还是很有必要的,这里选择Openfire服务器,Openfire是开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。 Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。那么接下来,我们就看一下如何搭建一个本地的Openfire服务器.
Openfire服务器搭建流程
由于Openfire服务器是基于java环境的,由于Openfire的版本一定要和JDK的版本对应一致,所以我们需要去Oracle官网去最新版本的JDK.然后安装最新的JDK就好.如下图所示.
上面我们就搭建好我们的java环境了,不过一定要记住,JDK版本要和Openfire的版本一致.接下来,我们需要去Openfire下载页下载最新的Openfire版本了.
下载完成之后,我们安装即可.安装完成我们会在系统偏好设置找到我们安装的JDK以及openfire服务器,如下所示.
接下来,我就需要配置我们的Openfire服务器了,我们先进入Openfire页面启动Openfire服务器.一开始,服务器的状态是处于stop停止状态的,所以我们需要手动启动一下,让状态处于Running状态.
这里,Openfire服务器也可能启动失败,其实失败的原因不外乎两个,一个是没有访问Openfire的权限,另外一个就是java的环境变量没有配置好,我们需要重新配置一下.所以,我们使用终端启动我们的Openfire服务器,步骤如下所示.
- 首先,给openfire中的bin文件夹一个权限,允许所有人读写.
sudo chmod -R 777 /usr/local/openfire/bin
- 配置java环境变量,这里需要注意的是最后一句命令jdk的版本要输自己的jdk的版本.我这里是1.8.0_111版本的,所以命令如下所示.
sudo su
cd /usr/local/openfire/bin
export JAVA_HOME=`/usr/libexec/java_home`
echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
- 配置好java环境变量之后,我们就启动Openfire服务器即可,具体命令如下所示.
cd /usr/local/openfire/bin
./openfire.sh
-
在终端如下图所示,代表着服务器启动成功.
启动完成之后,我们还是需要进入系统偏好设置进入Openfire页面,然后点击页面中Open Admin Console选项,打开Openfire的web配置页面.
(由于我已经安装完成了,所以接下来一些配置图并不是自己截的图,如有侵权,请联系我,立马删除)
-
首先,我们需要先选择语言.这里我们直接选择简体中文就好.
-
接下来,我们需要配置我们的服务器相关的.我们因为是在本机上设置的,所以域直接写127.0.0.1就好.其他的不用做任何修改.
-
我们光有服务器是不行的,需要一个数据库来存储用户的信息以及数据.接下来是我们对数据库进行设置,我们选择标准数据库连接选项.
- 选择继续之后,我们要设置我们的数据库.这是我们使用MySQL数据库即可.用户名可以填
root
,密码不用填写,然后其他的不用改变.
数据库URL的修改有几点需要注意.一个是,
[host-name]
修改为127.0.0.1
或者localhost
,[database-name]
改为数据库名称openfire
.当然了,数据库现在我们还没创建,接下来我们就需要创建一个名为openfire
的数据库,二就是请全部小写,因为url地址需要小写,所以我们创建数据库的时候,数据库的名称也要小写.
- 关于数据库的创建,我们使用的是XAMPP,这里我们只要往XAMPP官网下载最新的版本即可.
-
下载安装完成之后,我们可以在我们的用用程序列表中找到XAMPP,然后打开.
-
打开应用之后,然后我们需要在应用的
Manage Servers
页面中开启XAMPP服务器的所有服务.如下图所示.这里会有一个坑,那就是如果你电脑上下载了MySQL数据库,记得先把它停止运行,不然,XAMPP中的MySQL数据库是运行不了的.
-
启动完所有的服务之后,我们就需要去创建MySQL数据库了.首先点击
Welcome
用用的首页,然后我们点击Go To Application
按钮,进入web管理页面.
-
然后点击页面中
phpMyAdmin
选项进入管理页面.
-
然后,我们在管理页面中选择新建一个数据库.
-
出现创建页面,我们填入我们的数据库名称,这样我们就可以创建成功了.
-
创建成功数据库之后,我们就需要从Finder里面导出我们的MySQL数据库,首相我们我们打开Finder,然后使用快捷键Shift+Cmd+G输入文件路径usr/local.当然了,如果找到不到文件夹路径,那么只有一种可能,那就是Mac上的隐藏文件已经被隐藏了,这时候,我们需要开启终端,然后输入显示所有文件指令:
defaults write com.apple.finder AppleShowAllFiles -bool true
,然后从强制退出中重启Finder,这样就可以显示所有的隐藏文件了.
-
然后,我们需要找到openfire文件夹,然后,右键文件夹显示简介,然后开启所有权限.具体步骤如图所示.
-
修改完权限之后,我们如下图所示,把openfire_mysql.sql数据库拷贝到桌面上.
-
然后我们往我们在XAMPP中新建的数据库导入我们这个从openfire文件拿出来的数据库.如下图所示.
-
点击浏览,我们导入我们的数据库,其他的不用做任何修改.然后点击"执行"即可.
-
上面我们的数据库已经创建完成了,如下图所示(一大堆表😄).
-
表格创建完成之后,接着回到Openfire的web配置页面中,URL按照上面步骤填写.点击继续.如果报错的话,那么就可能是大小写的问题了,修改一下即可.接下来,我们设置我们的管理者账号和密码,这是我们登录Openfire服务器的账号密码.
-
点击继续,我们就完成Openfire服务器的整体搭建了.
Openfire服务器的数据管理
上面我们已经完成了Openfire服务器的搭建,接下来,我们需要登录Openfire服务器.还是系统偏好设置中我们打开Openfire控制面板.然后打开Open Admin Console然后打开web控制页面.
在下面的页面中输入设置的管理者账号和密码.
然后我们进入管理界面,我们就可以对我们的服务器进行管理了.
Openfire服务器的删除
如果当我们不想使用了Openfire服务器的时候,我们要怎么删除它呢?我们只需要以下几步即可完成删除的操作.
- 一. 打开Mac终端
- 二. 输入
sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
命令之后,然后输入管理员密码.
- 三. 输入
sudo rm -rf /usr/local/openfire
- 四. 输入
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist
做完上述的四步,我们就可以把Openfire服务器从我们的Mac中移除了~
结束
Openfire服务器在实际开发过程中其实并不是需要移动端开发人员进行搭建的,但是我们需要搭建一个服务器来测试XMPPFramework,所以搭建一个本地的服务器是很有必要的.搭建Openfire服务器如果遇到任何问题欢迎联系骚栋,让骚栋祝你一臂之力~~后期的博客,我将对XMPPFramework在具体使用过程中的步骤以及坑点进行详细的讲解说明,希望大家继续关注骚栋,谢谢大家.
网友评论
Access to the requested directory is only available from the local network.
This setting can be configured in the file "httpd-xampp.conf".
我把网上的方法基本全试了,都不好用,请问以下楼主遇到过这个问题嘛?
View the error message by opening the "/logs/error.log" log file, then go back to fix the problem.
676758285