在ejabberd-18.12.1上mod_ping的正确配置是什么?

问题描述 投票:0回答:1

我正在使用ejabberd服务器version 18.12.1启用流管理。当用户从互联网断开连接时,它的存在仍然在线,因此我决定使用mod_ping在超时后使用mod ping终止连接

我在ejabberd.yml文件中使用了以下配置:

mod_ping:
 send_pings: true
 ping_ack_timeout: 32
 timeout_action: kill

考虑到ping_interval的默认值:60。

Ping似乎不使用此配置。我错过了其他任何配置吗?客户是否应该启用某些功能?有没有我可以检查的ping日志?

注意:使用ejabberd服务器的web管理员的模块页面,ping_ack_timeoutmod_ping的配置值似乎与ejabberd.yml文件中的配置值不同,为什么会这样?

[{ping_interval,60},
{ping_ack_timeout,32000},
{send_pings,true},
{timeout_action,kill}]
xmpp ejabberd ejabberd-module
1个回答
1
投票

注意:使用ejabberd服务器的web管理员的模块页面,mod_ping的ping_ack_timeout的配置值似乎与ejabberd.yml文件中的配置值不同,为什么会这样?

这是预期的:您可以在几秒钟内设置人工可配置选项,之后内部时间值以毫秒(erlang使用的时间单位)表示。

我错过了其他任何配置吗?客户是否应该启用某些功能?有没有我可以检查的ping日志?

那应该够了。尝试与其他客户,只是为了检查是否会以任何方式影响。我安装了ejabberd 18.12,配置如下:

loglevel: 5
...
  mod_ping:
   send_pings: true
   ping_interval: 10
   ping_ack_timeout: 15
   timeout_action: kill

然后我启动ejabberd并使用Tkaber客户端登录(但我认为任何客户端都适合测试ping)。每十秒钟,客户端会收到以下查询:

<iq to='user1@localhost/tka1'
    from='user1@localhost'
    type='get'
    id='rr-1552642185584-13814872912241253802-5xOvCCobbU2TCC/RT4GaqD6M8bo=-55238004'>
  <ping xmlns='urn:xmpp:ping'/>
</iq>

同时,ejabberd日志文件显示了几条消息,从这一条开始:

10:29:30.585 [debug] route:
#iq{id = <<"rr-1552642185584-13814872912241253802-5xOvCCobbU2TCC/RT4GaqD6M8bo=-55238004">>,
    type = get,lang = <<>>,
    from = #jid{user = <<"user1">>,server = <<"localhost">>,resource = <<>>,
                luser = <<"user1">>,lserver = <<"localhost">>,
                lresource = <<>>},
    to = #jid{user = <<"user1">>,server = <<"localhost">>,
              resource = <<"tka1">>,luser = <<"user1">>,
              lserver = <<"localhost">>,lresource = <<"tka1">>},
    sub_els = [#ping{}],
    meta = #{}}
© www.soinside.com 2019 - 2024. All rights reserved.