mod_offline

说说ejabberd离线消息踩过的坑

夙愿已清 提交于 2019-12-09 22:26:04
使用过ejabberd的或许知道,也许踩过这个坑。那么就说说我们踩过的ejabberd的离线消息的坑吧。 ejabberd原生的离线消息的机制是,一般用户保存100条离线消息,管理员保存5000条离线消息。超过之后竟然没有删除老的离线消息的机制。😓 仅仅是报一个警告。 1 2 3 max_user_offline_messages: - 5000: admin - 100 1 2 << "Your contact offline message queue is " "full. The message has been discarded." >>    ejabberd原生的群聊是没有离线消息的,只要用户不在线,这期间其他群成员在群里面的聊天,不在线的用户上线后收不到这些消息的。 完全跟现在的一些即时聊天软件不一样,太不好耍了,而且一些客户都是按照某信的要求来看待的,对比一下就会发现这些问题,然后就是一堆的需求。 按照现在的即时聊天软件,我们在原来的基础上实现了群聊离线消息的机制,还添加多客户端消息同步的机制,那么一条离线消息就咬保存好几份了,然后的条数限制远远不够了,即使调了离线消息的配置(由原来的100改为2000),在一个群里面疯狂的聊天,一下子就满了。 好吧,那么就添加删除的机制吧,只要用户的离线消息大于配置的条数,那么就删除超出配置的老的离线消息。 1 2 3 4 5