Domanda

Ho un plugin per OpenFire che crea e consegna un messaggio a un utente usando

XMPPServer.getInstance().getMessageRouter().route(message)

Quello che vorrei sapere è cosa succede a quel messaggio se l'utente non è online.

Il mio obiettivo è far recapitare il messaggio solo se l'utente è online e, in caso contrario, fallire o essere indirizzato al bucket bit.

È stato utile?

Soluzione

Dipende tutto dalla configurazione di Openfire. Nella console di amministrazione Openfire, vai su Server - > Impostazioni del server - > Messaggi offline. Ci sono opzioni per memorizzare, rimbalzare e rilasciare.

  • Store: recapita il messaggio quando il l'utente torna online.
  • Rilascio: basta scartare il messaggio.
  • Rimbalzo: elimina e avvisa il mittente con un messaggio di ritorno.

Altri suggerimenti

Un altro approccio, se vuoi solo che questi messaggi non vadano offline senza influenzare la consegna di altri messaggi, è usare type = 'headline'. I titoli non sono terribilmente ben specificati, ma RFC 3921bis, sezione 5.2.2 dice:

  

titolo: il messaggio fornisce un avviso, una notifica o altre informazioni a cui non è prevista alcuna risposta (ad es. titoli di notizie, aggiornamenti sportivi, dati di mercato quasi in tempo reale e contenuti sindacati). Poiché non è prevista alcuna risposta al messaggio, in genere un client ricevente presenterà un messaggio di tipo "titolo" in un'interfaccia che differenzia in modo appropriato il messaggio da messaggi autonomi, messaggi di chat o messaggi di gruppo (ad esempio, non fornendo al destinatario la possibilità di rispondere). Il server ricevente DOVREBBE recapitare il messaggio a tutte le risorse disponibili del destinatario.

La maggior parte dei server di oggi lascerà silenziosamente i titoli agli utenti offline e consegnerà alla risorsa con la massima priorità se l'utente è online.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top