第三课、openfire管理控制台详解

阅读:12853
myopenfire教程网老师自画像

1、openfire后台管理中的常用设置讲解

2、关于数据压缩,缓存查看,系统变量的相关知识

1、前言

上一节课讲了openfire服务器的安装和客户端软件spark的简单使用,这一节课我们来讲解一下openfire服务器的配置。

2、openfire管理控制台详解

Openfire从开发者角度,我认为可以分为2个方面:

第一个方面是看不到的代码,他实现了90%以上的xmpp协议,也就是这个网站(xmpp.org)的协议。因为实现了xmpp协议,所以才能够在openfire中发送接收消息。

第二个方面是管理控制台,通过http://127.0.0.1:9090/登录。我们在前一课已经有说明了。因为openfire管理控制台对控制整个openfire的内部参数和实现的功能都很有作用,所以,我们这里要单独着重讲一下openfire管理控制台。

3、openfire管理控制台包含这几个主要的设置:服务器、用户/组、会话、分组聊天、插件

Openfire有如下几个主要设置项,如下图,现在你可以打开您的openfire服务器,并输入http://127.0.0.1:9090来访问openfire服务器了。

openfire控制台

因为大多数服务器设置一看就明白,所以,我们选择性的对openfire控制台的部分我们认为比较难理解的设置进行讲解,如果有没有讲到的地方,大家也觉得比较难,可以向我们的老师提问。

(1) 系统属性

首先,看看[服务器]->[服务器管理]->[系统属性]:系统属性就是整个openfire服务器的一些属性值,属性使用一个key来表示,例如adminConsole.port表示的是管理控制台的端口,它的值为9090,注意,我们可以随时更改这个端口。

注意了,属性名可以用类似域名的方式表示,中间加点是合法的,又如:database.defaultProvider.username。如下面的一幅图:

openfire系统属性

有时候,我们不希望管理员能够看到这些属性的值,那么可以对属性进行加密,其实让尽可能少的人看到关键数据,如数据库密码,这种设计是很可取的。为了加密,可以点击如上的+号按钮:

点击后,加号会变为一个锁,表示数据加密了,这时候,左边的值你也看不到了,变为“hidden”。只有重新删除这个属性后,并重新创建这个属性,才能看到这个值了。

如果要添加属性值,可以在下面的界面中添加:

为openfire添加属性

4、openfire设置之语言和时区设置:

Openfire中的时间问题:openfire使用的使格林威治时间,有一个问题是格林威治时间有一个bug,就是没有全球统一的时间,如下图(摘自互联网):

openfire使用的时间

大家可以看到,每个地区的时间都不一样,那么服务器最好设置为0时区:“中文 (中国) / (GMT+0:00) 格林威治时间”,时间到达客户端后,客户端根据自己的时区设置,进行调整,如北京时间,就需要加8个小时。在英国,就不要加时间,只有这样,您的应用,在全世界显示的时间才是正确的。不要认为服务器直接取回的时间,就是本地区的时间哦。

以上这个问题,在开发的时候,很多初学者都会犯错误。

5、openfire设置之缓存摘要

Openfire有很多数据结构需要直接使用内存。可以在[缓存摘要]这里监控(http://127.0.0.1:9090/system-cache.js)openfire内存的使用情况,如下图:

openfire缓存摘要

6、 openfire设置之安全审计日志查看器

这个是什么东东,其实就是admin管理员在openfire中的操作日志,如果openfire出现问题,可以看一下管理员进行了什么操作,也许能够找到解决办法,这是一个不错的设计哦。

openfire审计日志

7、 openfire设置之客户端连接设置

Openfire服务器端口设置:

Openfire默认tcp连接有2个端口5222和5223,他们之间有什么区别呢?如下图:

openfire的端口

5222是普通的连接,5223是建立了安全通道的TCP连接,就是说5223更安全。更通俗点说,就是用5223建立SSL连接,在这个连接上的数据都是加密的,但是你知道的,只要加密,传输速度会慢一些,毕竟有加密的过程。如果,您的应用是为移动设备开发的,那么请谨慎使用。

Openfire的空闲连接策略(Idle Connections Policy)

先看看下面的图:

openfire空闲连接

我来解释一下上面的意思:

原文:Openfire can disconnect clients of which the connection appears to be lost. Lost connections are detected based on the amount of time that a client has been idle.

解释:openfire有断开一种连接的能力,这种连接因为网络等原因,可能经常丢失。一旦服务器检测到某个连接一段时间类没有任何与服务器之间的交流,也就是idle(空闲)的意思,那么服务器可以选择认为这个连接已经断开了,这种openfire才会将消息存入离线中。

接下来是两个选项,如下图:

第一个选项是:当连接空闲的时候,不认为连接断开了。

第二个选项是:只要链接空闲360s,那么我们就认为这个连接已经断开了。那么openfire不会认为这个人还在线。

怎么保持连接,需要心跳包(ping)

Openfire can send an XMPP Ping request to clients that are idle, (openfire能够发送一个心跳包给那些比较空闲的连接,在它们快要断开之前。)before they are disconnected. Clients must respond to such a request(客户端必须要响应这个请求), which allows Openfire to determine if the client connection has indeed been lost(通过客户端发送的响应,服务器可以判断这个连接是不是实际上已经丢失了。). The XMPP specification requires all clients to respond to request(xmpp协议要求所有的客户端去响应服务器的ping请求). If a client does not support the XMPP Ping request(如果一个客户端不支持xmpp的ping请求), it must return an error (which in itself is a response too).(它必须返回一个错误给服务器)

下面的截图就是设置openfire要不要发送心跳包给客户端:

openfire心跳包设置

注意:默认情况下是发送。

8、 openfire设置之更新管理

Openfire使用了很多官方或者第三方的插件,当这些插件更新的时候,可以通知管理员去更新,更新的机制可以在[服务器设置]->[ 管理更新]->[更新管理]这里设置。

openfire自动查询有没有更新

下面的选项是openfire自动查询有没有插件更新,如果不想openfire自动查询,那么就需要管理去查询了,如下图:

openfire插件更新

为了第一时间收到通知,管理员可以打开如下的选项,这样,最新的插件更新可以通过xmpp协议,在管理员登录的时候,发送给管理员。

9、 openfire设置之资源冲突策略设置

当一个用户使用同一个资源登录openfire的时候,openfire会产生哪些反应,是不允许后一个用户登录,还是把前一个用户踢出openfire。这种openfire的行为在[冲突策略]中设置。 如下图:

10、 openfire设置之离线消息的存储

在[服务器]->[服务器设置]->[脱机消息]->[脱机消息]中是关于离线消息存储的设置。如下图:

哎,本来想解释一下,但是我觉得图中说得太清楚了,真的不用解释了,如果还不明白,就问一下网站下方的老师把。

11、 openfire设置之消息审计

什么是openfire的消息审计呢?

审计就是审查的意思,我们可以将发送到openfire或者从openfire发送出去的包记录下来,需要的时候,可以通过查看这些包,找到发生了的问题。这些消息存储在下面的设置中,如下图:

openfire消息审计

12、 openfire设置之XMPP协议的压缩

Xmpp协议是基于文本的协议,基于文本的协议的优点是可读性高,简单易懂,但是缺点就是体积大,占用网络带宽较多。

正因为如此,如果cpu和内存够用,因为压缩需要消耗更多的cpu和内存资源,那么我们还是建议你对xmpp数据进行压缩。

对于xmpp数据一般可以压缩80%以上,我们做过实验,将35KB的xmpp数据压缩后,仅有4KB,如下图所示:

openfire压缩

虽然上图是使用压缩软件压缩的情况,很多同学也许觉得这不能反映openfire压缩的真实情况,这点大可不用担心,因为openfire使用的也是gzip算法。

要启动openfire的压缩,请参照下图进行配置:

上面有2个选项,第一个是客户端和服务器之间的压缩,第二个是服务器与服务器之间的压缩,为什么要分为两个选择呢?这是因为,一般服务器与客户端之间因为网络状态不良好,所以一般情况有很必要压缩,但是服务器与服务器之间,因为大多数在内容,网络情况非常良好,所以,没有必要压缩数据了,因为压缩数据也会占用cpu和内存资源。相比而下,服务器与服务器之间如果就在局域网,就不用压缩了。

13、 小结

本课讲解了很多关于openfire的后台设置,很多设置也许现在您不是非常明白,这些概念需要您在实践中逐步去体会,还有很多常用设置,我们没有讲到,在后面的学习中,我们应该可以将这些设置的精髓告诉大家,我们期待后面的课程与大家见面。

晚安,同学,记得11点前睡觉,我们这套课程的初衷就是想减少大家熬夜的时间,所以如果您11点还在学习,那么我们觉得身体比学习重要,晚安。

提问或评论

登陆后才可留言或提问哦:) 登陆 | 注册 登陆后请返回本课提问
用户名
密   码
验证码