Konfigurirajte vezu koja stvarno prenosi XMPP tok. Postavljanje proxyja na nepovezani URLConnection ne preusmjerava Smackovu TCP vezu na uslugu razmjene poruka.

Smack 4.4 nudi tvornice ProxyInfo za HTTP, SOCKS4 i SOCKS5. Priložite dobiveni objekt graditelju XMPP veze:

import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.proxy.ProxyInfo;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

ProxyInfo proxy = ProxyInfo.forSocks5Proxy(
    "proxy.example.net", 1080, proxyUser, proxyPassword
);

XMPPTCPConnectionConfiguration config =
    XMPPTCPConnectionConfiguration.builder()
        .setXmppDomain("chat.example.net")
        .setHost("xmpp-node.example.net")
        .setPort(5222)
        .setProxyInfo(proxy)
        .setSecurityMode(
            ConnectionConfiguration.SecurityMode.required
        )
        .build();

Ovo je fragment konfiguracije za postojeće postavljanje Smack 4.4. Okolna aplikacija obrađuje provjerene iznimke graditelja i osigurava proxy vjerodajnice. Eksplicitni host i port označavaju stvarnu TCP završnu točku XMPP usluge.

Postoje tri imena s različitim ulogama:

  • proxy.example.net je posrednik koji prima početnu vezu.
  • xmpp-node.example.net je završna točka poslužitelja do koje se proxy traži da stigne.
  • chat.example.net je domena XMPP usluge, poput domene nakon @ u JID-u računa.

Usluga može koristiti isto ime za posljednja dva, ali ime hosta proxyja ne zamjenjuje nijedno od njih. Sačuvajte namjeravani identitet XMPP usluge u vezi i njezinoj TLS provjeri.

Za HTTP proxy upotrijebite ProxyInfo.forHttpProxy s odgovarajućim portom proxyja i vjerodajnicama. Taj put zahtijeva proxy koji može tunelirati XMPP vezu i dopustiti njezin odredišni port. Proxy koji obrađuje HTTPS web pregledavanje ne dopušta automatski TCP veze na XMPP uslugu na 5222.

Obvezni sigurnosni način u fragmentu čini TLS uvjetom XMPP veze. On ne obavlja proxy autentifikaciju, a proxy vjerodajnice se ne prijavljuju na XMPP račun. Konfigurirajte XMPP račun kroz uobičajeni Smackov tok autentifikacije nakon uspostavljanja rute i sigurne sesije.

Držite primjere unutar njihove generacije API-ja. Stariji primjeri ConnectionConfiguration temeljeni na konstruktoru izražavaju isti koncept usmjeravanja, ali graditelj Smack 4.4 sučelje je koje se ovdje koristi. Nema potrebe reproducirati imena hostova zastarjelog pružatelja poruka da biste taj koncept primijenili na trenutačnu XMPP uslugu.

Povezani članci