Ich habe eine Java-Anwendung Smack 4.1.7 zu implementieren, die ich als Schein-Client für Openfire 4.0.2 verwenden. Im Moment läuft Openfire auf meinem localhost. Smack richtig anmelden und authentifizieren mit dieser Verbindung:Routing-Fehler zwischen Smack und Openfire auf 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();
Nun, wenn Smack versucht, eine MUC zu erstellen oder zu verbinden, die Anforderungs mal aus (SmackException $ NoResponseException) und Openfire protokolliert das folgende:
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>
Ich habe "localhost", "127.0.0.1" und den Namen meines Rechners als XMPP_HOST_NAME sowohl auf der Serverseite als auch auf der Clientseite verwendet und erhalte immer wieder denselben Fehler. Jede Hilfe wäre willkommen.
es tut mir leid, haben Sie die Anmeldung mit dem Benutzer gemacht? localhost wird nicht funktionieren, der Computername (aber Sie müssen auf openfire Server-Namen im Control Panel überprüfen) funktioniert. Für mich scheint die Anwesenheit von und zu der gleichen Person seltsam, aber ich muss überprüfen – MrPk
ja, Login funktioniert gut. Es funktioniert sowohl mit localhost, 127.0.0.1 als auch mit dem Computernamen (unabhängig davon, was auf der OpenFire-Seite konfiguriert wurde). Es gibt eine Warnung auf Smack-Seite beim Herstellen der Verbindung: org.jivesoftware.smack.util.DNSUtil resolveDomain Warnung: Ausnahme beim SRV-Datensätze für localhost resov. Erwägen Sie, '_xmpp- (server | client) ._ tcp' DNS-SRV-Einträge hinzuzufügen, aber von dieser Verbindung und der Authentifizierung aus sind sie in Ordnung. – guik
Vielleicht haben Sie einen Proxy und Sie müssen localhost (ja, 127.0.0.1) als Ausnahme hinzufügen ... – MrPk