Domanda

Ho scritto un demone JAXL in PHP (Debian 6.0) che si trova e ascolta i messaggi in arrivo e quindi elabora il messaggio in arrivo passando il payload a un'API.(ascolta i messaggi in arrivo su user1 @ server)

Il problema che sto riscontrando è quindi l'invio di un messaggio all'utente.Il modo in cui l'ho fatto ora è avviare un altro demone XMPP, inviare il messaggio, quindi arrestare il demone.Il problema è che sta avviando un altro demone con il JID user1 @ server da inviare a user2 @ server.Quando chiudo JAXL, chiude anche il demone "in ascolto".

Ho considerato di riavviare il demone di ascolto quando invio il messaggio, ma l'avvio richiede troppo tempo (1-2 secondi) e la mia app non può davvero permettersi quel tempo di attesa.

Qualcuno ha qualche idea su come risolvere questo problema, magari utilizzando anche il demone di ascolto per inviare messaggi?

È stato utile?

Soluzione 2

Solo per chiunque sia interessato a questo, ho finito per modificare JAXL per ascoltare su un socket UDP mentre il daemon è in esecuzione, e se i dati vengono ricevuti su quel socket UDP viene quindi utilizzato $ jaxl-> sendMessage (...) e invia un messaggio.Ho quindi scritto una semplice funzione che invia i dati a questo socket UDP ogni volta che voglio inviare un messaggio.

Altri suggerimenti

È così bello sentire i progressi.Anche se dal tuo codice di esempio $jaxl->sendMessage() sembra che tu stia usando JAXL v2.x.Ti consiglio vivamente di eseguire l'upgrade a JAXL v3.x se non hai alcuna dipendenza hard codedsu v2.x.

Puoi seguire questo thread del gruppo Google Invia un messaggio tramite una connessione attiva esistente se stai considerando di utilizzare v3.x che ora ha un modo ufficiale di inviare il payload xmpp comunicando con un demone xmpp in esecuzione in background (IPC).Puoi persino controllare da remoto i tuoi demoni xmpp e molto altro ancora con v3.x.

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