Mam aplikację Java wdrażającą Smack 4.1.7, której używam jako klienta próbnego dla Openfire 4.0.2. W tej chwili Openfire działa na moim lokalnym hoście. Smack może zalogować się i uwierzytelniać właściwie z tego połączenia:Błąd routingu między Smack i Openfire na 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();
Teraz kiedy Smack próbuje utworzyć lub dołączyć do MUC, czasy żądania out (SmackException $ NoResponseException) i Openfire rejestruje następujące:
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>
Użyłem "localhost", "127.0.0.1" i nazwę mojego komputera jako XMPP_HOST_NAME zarówno po stronie serwera, jak i po stronie klienta, i ciągle pojawia się ten sam błąd. Każda pomoc będzie doceniona.
Przepraszam, czy zrobiłeś login z użytkownikiem? localhost nie działa, nazwa komputera (ale musisz sprawdzić nazwę serwera openfire w panelu sterowania) będzie działać. Dla mnie obecność zi do tej samej osoby wydaje się dziwna, ale muszę sprawdzić – MrPk
tak, logowanie działa poprawnie. Oba działają z localhost, 127.0.0.1 i nazwą komputera (bez względu na to, co jest skonfigurowane na stronie openfire btw). Po nawiązaniu połączenia pojawi się ostrzeżenie po stronie Smack: org.jivesoftware.smack.util.DNSUtil resolveDomain OSTRZEŻENIE: Wyjątek podczas ponownego zapisywania rekordów SRV dla localhost. Rozważ dodanie "_xmpp- (serwer | klienta) ._ tcp" Rekordy DNS SRV, ale od tego połączenia są uruchomione i uwierzytelnianie jest w porządku. – guik
Być może masz proxy i musisz dodać localhost (tak, 127.0.0.1) jako wyjątek ... – MrPk