Ho un'applicazione Java che implementa Smack 4.1.7 che sto usando come client fittizio per Openfire 4.0.2. Al momento, Openfire è in esecuzione sul mio localhost. Smack può fare il login e l'autenticazione correttamente con questo collegamento:Errore di routing tra Smack e Openfire su localhost
XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setServiceName(XMPP_HOST_NAME) // equals xmppDomain on server
.setUsernameAndPassword("user1", "pwd1")
.setResource("tester")
.setDebuggerEnabled(true)
.build();
Ora, quando Smack tenta di creare o partecipare a un MUC, i tempi di richiesta out (SmackException $ NoResponseException) e openfire registra i seguenti:
2016.07.03 18:58:54 org.jivesoftware.openfire.spi.RoutingTableImpl -
Unable to route packet. Packet should only be sent to available sessions and the
route is not available.
<presence id="WrkXH-6" from="[email protected]/tester" to="[email protected]/tester">
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="NfJ3flI83zSdUDzCEICtbypursw="/>
</presence>
2016.07.03 18:58:54 org.jivesoftware.openfire.spi.RoutingTableImpl -
Failed to route packet to JID: [email protected]/tester packet:
<presence id="WrkXH-6" from="[email protected]/tester" to="[email protected]/tester">
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="NfJ3flI83zSdUDzCEICtbypursw="/>
</presence>
Ho usato "localhost", "127.0.0.1" e il nome della mia macchina come XMPP_HOST_NAME sia sul lato server che sul lato client, e continuo a ricevere lo stesso errore. Qualsiasi aiuto sarebbe apprezzato.
mi dispiace, hai effettuato il login con l'utente? localhost non funzionerà, il nome della macchina (ma devi controllare il nome del server openfire nel pannello di controllo) funzionerà. Per me la presenza da e per la stessa persona sembra strana ma devo controllare – MrPk
sì, il login funziona bene. Funziona sia con localhost, 127.0.0.1 sia con il nome della macchina (indipendentemente da cosa sia configurato sul lato openfire btw). C'è un avviso sul lato Smack quando si stabilisce la connessione: org.jivesoftware.smack.util.DNSUtil resolveDomain AVVISO: Eccezione durante il ripristino dei record SRV per localhost. Prendi in considerazione l'aggiunta di '_xmpp- (server | client) ._ tcp' DNS SRV Records, ma appart da quella connessione e l'autenticazione è ok. – guik
Forse hai un proxy e devi aggiungere localhost (sì, 127.0.0.1) come eccezione ... – MrPk