1、创建辅助离线消息存储表
-- Create table
create table OFOFFLINE2
(
username VARCHAR2(64) not null,
messageid INTEGER not null,
creationdate CHAR(15) not null,
messagesize INTEGER not null,
stanza LONG not null,
messageid2 VARCHAR2(500)
)
-- Create/Recreate primary, unique and foreign key constraints
alter table OFOFFLINE2 add constraint OFOFFLINE2_PK primary key (USERNAME, MESSAGEID);
跟openfire离线表结构一致,额外添加messageid2字段,用于当消息正常接收后删除记录的过滤条件。
2、将正常接收的消息存储到该表,代码如下:
在MessageRouter类的public void route(Message packet)方法中添加

private void addMessage(Message message){
if (message == null) {

本文介绍了针对openfire离线消息丢失的解决方案,包括创建辅助存储表OFOFFLINE2,存储接收到的消息,并在消息正常接收后通过messageid2字段进行删除操作,以及介绍如何实现消息监听插件来进一步管理这些离线消息。
最低0.47元/天 解锁文章
5432

被折叠的 条评论
为什么被折叠?



