XMPP:离线消息不是由对话接收的,而是由ejabberd的Gajim接收的 基本情景
Bob离线时,Alice使用Conversations 1.23.8作为客户端向他发送消息。服务器正在debian上运行ejabberd 18.01 Bob被认为是离线的,当XMPP:离线消息不是由对话接收的,而是由ejabberd的Gajim接收的 基本情景,xmpp,ejabberd,offline,Xmpp,Ejabberd,Offline,Bob离线时,Alice使用Conversations 1.23.8作为客户端向他发送消息。服务器正在debian上运行ejabberd 18.01 Bob被认为是离线的,当 ejabberdctl connected_users 没有列出他的名字 该消息随后由ejabberd存储在离线消息存储器中。这是由以下人员检查的: ejabberdctl get_offline_count bob example.com 在/etc/ejabberd/ejabberd.ymlmod_offline中
ejabberdctl connected_users
没有列出他的名字
该消息随后由ejabberd存储在离线消息存储器中。这是由以下人员检查的:
ejabberdctl get_offline_count bob example.com
在/etc/ejabberd/ejabberd.yml
mod_offline中配置:
access:
max_user_offline_messages:
admin: 5000
all: 100
...
modules:
mod_offline:
access_max_user_messages: max_user_offline_messages
...
案例A:
Bob使用gajim 1.0.0连接到服务器。他接收离线消息并
ejabberdctl get_offline_count bob example.com
返回0(在连接之前大于0),日志(/var/log/ejabberd/ejabberd.log
)显示:
无论如何返回0(在他连接之前它是>0),并且日志(/var/log/ejabberd/ejabberd.log
)没有类似于案例A的条目
问题:
我已经为此工作了几天了。我研究了服务器的配置和客户端的配置。根据我的经验,我会说这是对话客户的问题,但我现在不知道该去哪里找。我应该在ejabberd.log中查找什么日志消息?对话1.23.8似乎不支持脱机消息(XEP-0160),但它支持消息存档管理(MAM-XEP-0313) 现在,我的解决方案是将脱机消息重定向到MAM,客户端在连接到服务器时与其MAM同步。提示:默认情况下,在ejabberd 18.01中禁用MAM 我的MAM配置是:
mod_mam:
iqdisc: one_queue
default: always
assume_mam_usage: true
我没有更改我的mod_脱机配置
提示:执行此操作时,还需要mod_ping和mod_stream_mgmt来检测丢失的连接并终止会话,以便mod_offline捕获脱机消息并重新发送到mam
ejabberdctl get_offline_count bob example.com
mod_mam:
iqdisc: one_queue
default: always
assume_mam_usage: true