ユーザーが他のページに移動すると、オフライン メッセージは保存されません。
クライアント側でstrophe.jsを使用しています。mod_offline はサーバー側で有効になっています。利用できないプレゼンスが送信され、ユーザーがまだ ejabbered サーバーに接続している場合、オフライン メッセージは遅延配信用に保存されます。これは ejabberd を使用して確認できますapi/get_offline_count
しかし、ユーザーが別のページに移動すると、オフライン メッセージはユーザーに対して保存されapi/get_offline_count
ません。ユーザーが同じ jid で再接続すると、メッセージが配信されないことを確認しました。
別のページに移動する前に、strophe.js が何かを行っていると思われます。仕様によると、ユーザーが接続されていない場合、サーバーは mod_offline が有効になっているときにオフライン メッセージを保存する必要があります。なぜ保存されないのかわかりません。
const webSockerUrl = "wss://websocker.url";
console.log(Strophe.SASLAnonymous);
Strophe.SASLAnonymous.priority = 50;
let connection = new Strophe.Connection(webSockerUrl);
const username = 'userId';
const password = '';
const url = `${username}/${currentDate}`;
connection.connect(url, null, events.onConnect);