XMPPFramework开发(一):Openfire服务器搭建


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在具体使用过程中的步骤以及坑点进行详细的讲解说明,希望大家继续关注骚栋,谢谢大家.


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,565评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,021评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,003评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,015评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,020评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,856评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,178评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,824评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,264评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,788评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,913评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,535评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,130评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,102评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,334评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,298评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,622评论 2 343

推荐阅读更多精彩内容

  • 一、阿里云ECS服务器ubuntu安装openfire服务 下载OpenFire安装文件 1、安装Axel Axe...
    RichieQ阅读 2,504评论 2 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 2017-09-10 周日 七月二十 感赏今天记得写感赏日志! 感赏我放任别人来做他自己! 感赏听到好听的歌曲! ...
    代灿红_六中阅读 130评论 0 0
  • 郁不得清气兜少时,冤道离歧路急如风。 此地青草变白草,我岂是背道人? 我欲应征却不得,苦泪卧。 又看近世何等快,今...
    笔情墨意阅读 202评论 0 0
  • 心里真痛呀,莱丽下午见到了前夫强子,和他商议房屋过户给女儿这件事。每一次见他,莱丽就要受一次刺激,她总是避免见到强...
    悠游四海阅读 283评论 0 1