iOS实现XMPP通讯(一)搭建Openfire

2023-05-16

安装Openfire

  • Openfire官网下载地址:https://igniterealtime.org/downloads/ (也是Spark客户端的下载地址)
    Openfire下载并安装后,打开系统偏好设置,底部会出现Openfire
    请添加图片描述
  • 试图启动openfire,终端命令:
cd /usr/local/openfire/bin
./openfire.sh

出现报错信息:openfire Error: JAVA_HOME is not defined correctly. /System/Library/Frameworks/JavaVM.framework/Home
Openfire默认提供的路径是错误的,百度一下,说是要修改java_home路径,有两种方法解决:
方法一:修改/usr/local/openfire/bin/openfire.sh中JAVA_HOME的路径
方法二:系统全局声明JAVA_HOME的路径

  • 查看JDK安装路径,终端命令:
/usr/libexec/java_home -V

请添加图片描述
以上电脑安装有2个JVM(JDK中包含了JRE,JRE中包含了JVM),简单说明:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home是系统自带的JRE路径
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home是JDK路径
最底下的/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home表示当前系统默认使用自带的JRE路径

即当前JAVA_HOME的路径为/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,为此我们需要切换到jdk 1.8.0_40版本的路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home。

  • 方法一:修改/usr/local/openfire/bin/openfire.sh文件中JAVA_HOME的路径
    由于openfire.sh文件是只读权限,需要给它赋予读写权限才能进行写入操作。一般来说给openfire.sh文件和其父文件夹bin赋予读写权限就能编辑openfire.sh文件,但后面执行openfire.sh脚本时发现,脚本需在/usr/local/openfire文件夹中创建一些文件夹及文件,如果权限不足会导致出现报错信息,为了避免这种情况,我们直接遍历/usr/local/openfire文件夹,给子目录和子文件都赋予读写权限,终端命令:
//-R表示遍历文件夹的子文件或子文件夹
sudo chmod -R 777 /usr/local/openfire

打开openfire.sh,在"Darwin*) darwin=true"下面第二行的位置替换"JAVA_HOME="后面的内容为/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home,如下:
请添加图片描述

  • 方法二:系统全局声明JAVA_HOME的路径(推荐)
    cd ~/.bash_profile,编辑.bash_profile文件,添加如下内容
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH
export PATH

然后让配置立即生效,终端命令:

source ~/.bash_profile
  • 启动openfire(前提必须保证/usr/local/openfire子目录和子文件有读写权限),终端命令:
cd /usr/local/openfire/bin
./openfire.sh

以上启动openfire后,默认会去监听9090端口。由于openfire没有提供关闭服务器的脚本,如果需要关闭openfire,可以用杀死进程的方式间接关闭openfire,具体做法:

sudo lsof -i:9090    //查看端口号所在的进程信息(PID是进程号)
kill -9 PID    //杀掉指定进程PID,释放被占用的端口号

以上必须用kill -9。这里对kill的用法做个科普:

kill命令默认的信号是15,也就是kill -15,是优雅的退出。当使用kill -15时,系统会发送一个SIGTERM的信号给对应的程序,通知其进行“安全、干净的退出”。当程序接收到SIGTERM信号后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等。准备工作做完了,再进行程序的终止,但如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么程序可以选择忽略该终止信号。这就是为何有时kill命令没法杀死应用程序的原因,因为SIGTERM(15)信号是可以被阻塞和忽略的。
像很多java程序,发送kill命令,程序不会立即退出,通常要等个几十秒之后才会退出。这时我们可以使用kill -9强制杀死的命令,系统会发出SIGKILL信号,程序接收到该信号后立即退出,不能被阻塞或者忽略。

注意:后来发现./openfire.sh开启openfire后台服务器后,是可以用快捷键control+C关闭的。

  • 进入系统偏好设置->Openfire,查看Openfire的开启状态。如果没开启就点击Start Openfire,在绿色Running时,点击Open Admin Console,自动进入浏览器打开Openfire的后台服务器http://localhost:9090
    请添加图片描述

配置Openfire后台服务器

  • 语言选择:中文,点下一步。
    服务器设置:域(即服务器名称,用户JID会显示该值)填写192.168.2.2,Server Host Name(主机名,用于登录)填写127.0.0.1,端口按默认9090,点下一步。
    数据库设置选择:嵌入的数据库(Openfire自带数据库,不需要外部数据库),点下一步。
    配置文件设置选择:默认设置,点下一步。
    管理员账户:管理员电子邮箱按默认,密码填写123456,点下一步完成配置。
    请添加图片描述
    之后点击“登录到管理界面”,输入账号admin,密码123456,进入Openfire后台管理。
  • 创建用户。点击用户/用户群->新建用户,依次创建用户名hong、ming、wang,密码统一设置为123456,方便记。
    请添加图片描述
    之后就可以用Spark客户端(在Openfire官网上有得下载),登录用户账号,添加好友进行交流了。

卸载Openfire

  • 卸载Openfire的终端命令:
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist
  • 资料:
    XMPP聊天之Openfire后台的安装和配置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS实现XMPP通讯(一)搭建Openfire 的相关文章

随机推荐

  • Linux系统之使用yum安装Redis数据库

    Linux系统之使用yum安装Redis数据库 一 redis介绍1 redis解释2 redis特点3 redis使用场景 二 检查系统版本1 检查系统版本2 检查内核版本 三 检查yum仓库状态四 查看系统默认提供的redis版本五 安
  • Linux系统之MobaXterm远程连接centos的GNOME桌面环境

    Linux系统之MobaXterm远程连接centos的GNOME桌面环境 一 MobaXterm介绍1 MobaXterm简介2 MobaXterm功能特点 二 centos安装GNOME桌面1 本地环境介绍2 安装GNOME桌面环境3
  • mysql配置secure_file_priv

    1 secure file priv 配置项控制LOAD DATA SELECT OUTFILE LOAD FILE 的使用权限 secure file priv 设置值为 NULL 时 xff0c 表示限制mysqld不允许导入或导出 s
  • Linux远程连接图形界面的几种方法

    1 xff0c 利用Xmanager xff0c linux启用XDMCP协议 xff08 可直接修改配置文件 xff0c 也可以采用在Xshell中运行gdmconfig或gdmsetup xff0c 选择XDMCP选项卡 xff0c 勾
  • WSL(Ubuntu)简单配置

    WSL安装后 xff0c 国内环境不能很好的支持其运行 xff0c 故需要进行简单配置 以Ubuntu 20 04 5 LTS为例 1 WSL迁移 以管理员身份运行PowerShell 查看WSL是否为关闭状态 wsl l v 导出WSL
  • Liunx文件系统基本目录介绍大全

    Liunx文件系统基本目录介绍大全 根文件系统 通常情况下 xff0c 根文件系统所占空间一般应该比较小 xff0c 因为其中的绝大部分文件都不需要 经常改动 xff0c 而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏 除了可能
  • 联想笔记本win10相机打开显示灰色画斜杠相机 无法进行人脸识别 怎么办

    首先我的电脑是联想小新PRO16 2021 由于今天要参加一场笔试 xff0c 我的摄像头打开就是灰色画斜杠的相机 所以再网上找各种方法调试摄像头花了三个小时 xff0c 还好最后成功解决 下面是我的解决方法 xff1a 通过联想电脑管家
  • C++简单实现十进制和二进制、八进制、十六进制之间的转换

    十进制到二进制 八进制 十六进制的转换 十进制到二进制 八进制 十六进制的转换二进制 八进制 十六进制到十进制的转换 十进制到二进制 八进制 十六进制的转换 span class token preprocessor property in
  • linux centos7虚拟机安装mysql5.7详细教程(tar包安装)

    目前网络上大多数的安装教程采用的是rpm的方式 xff0c 此种方式是需要虚拟机联网完成的 xff0c 我介绍的是使用tar包的方式安装mysql5 7的方法 1 官网下载压缩包 链接 xff1a https dev mysql com d
  • ZCMU—1487

    1487 红桃X Time Limit 1 Sec Memory Limit 128 MB Submit Status Web Board Description 从西安到杭州的火车实在是太漫长了 xff0c 为了打发时间 xff0c H买
  • snprintf()解析

    snprintf ssid mac sizeof ssid mac 34 s 02X 02X 34 ssid macval 4 macval 5 ssid mac 61 ssid macval 4 macval 5 将ssid 转化为str
  • 图像傅里叶变换

    1 图像的傅里叶变换 傅里叶变换可以看成是时域和频域的转换 一维图像傅里叶变换公式 xff08 空间域 gt 频域 xff09 xff1a 一维傅里叶变换逆变换公式 xff08 频域 gt 空间域 xff09 xff1a M N图像的二维离
  • Anaconda & Jupyter 虚拟环境设置

    1 Conda 的下载和安装 什么是 Conda 官方定义 xff1a Package dependency and environment management for any language Python R Ruby Lua Sca
  • 【opencv-3】YUV转opencv Mat格式

    int yuv to mat unsigned char data Mat image unsigned char srcYuv 61 data int indexY indexU indexV unsigned char Y U V un
  • 如何在线重新安装苹果电脑系统---基于 Intel 处理器的 Mac 电脑上的 macOS 恢复功能

    前言 xff1a 此功能可以帮助我们从时间机器恢复 重新安装 macOS 获取在线帮助 修复或抹掉硬盘等 本文收集了官方教材和以往个人操作经验以及可能出现的一些问题 xff0c 希望可以帮助到小伙伴们 抹掉 Mac 之前 1 如果您想要将
  • 【CV-tracking】多目标跟踪-实战(OpenCV+YOLO+DeepSORT)

    CV tracking 多目标跟踪 实战 xff08 OpenCV 43 YOLO 43 DeepSORT xff09 文章目录 1 参考文献1 1 数据集1 2 可复现的代码1 3 YOLO教程1 4 DeepSORT教程1 5 集成软件
  • word通过endnote插入文献后很长一串乱码

    endnote插入文献之后出现乱码 word任务栏如下 点击后是这样的 出现这种情况 xff0c 点击系统栏preferences xff0c 在turn off 那里打钩 xff0c 然后就恢复正常了
  • Zotero基于GB/T 7714-2015(author-date,中文)“等”字及引用大写的解决办法(附CSL修改代码)

    一 先任意选中一个文献 xff08 方便之后看引用效果 xff09 xff0c 点击 引用 首选项 样式编辑器 xff0c 如果没出现代码修改界面 xff0c 点击中间的省略号的符号 xff0c 就能出现 二 修改CSL代码 xff0c 只
  • endnote换电脑后保存内容找回

    1 登录endnote账号 xff0c 会在线导入 xff0c 但没有pdf xff0c 因为pdf保存在原电脑内 可使用学校购买的endnote的登录 2 平时使用时为预防电脑故障不得不重装系统的情况下 xff0c 一定要新建一个libr
  • iOS实现XMPP通讯(一)搭建Openfire

    安装Openfire Openfire官网下载地址 xff1a https igniterealtime org downloads xff08 也是Spark客户端的下载地址 xff09 Openfire下载并安装后 xff0c 打开系统