iOS实现XMPP通讯(一)搭建Openfire
时间:2021-10-11
本文章向大家介绍iOS实现XMPP通讯(一)搭建Openfire,主要包括iOS实现XMPP通讯(一)搭建Openfire使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装Openfire
- Openfire官网下载地址:https://igniterealtime.org/downloads/ (也是Spark客户端的下载地址)
Openfire下载并安装后,打开系统偏好设置,底部会出现Openfire
以上启动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
原文地址:https://www.cnblogs.com/johncahong/p/15394204.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 苹果上架的整个流程
- 三阴性乳腺癌表达数据分析笔记之TNBC定义
- JVM和操作系统的关系是什么?
- PostgreSQL 查询注释
- Python虚拟环境安装与配置
- 2019 年第十届蓝桥杯省赛 B组 C++超详细题解
- 五. css 布局之 position(定位)
- 【译】Rust与智能指针
- 根据坐标在基因组上面拿到碱基序列来设计引物
- 18款Webpack插件,总会有你想要的!
- Linux下如何查看硬件信息?
- 最通俗易懂的一篇文章了解JVM、JRE、JDK的关系是什么?
- 六. CSS 样式补充之 font & background
- 七 .Html的表格
- rollup + typescript 构建 ts 包