Konfigurer tilkoplinga som faktisk ber XMPP-straumen. Å setja ein proxy på ein urelatert URLConnection omdirigerer ikkje TCP-tilkoplinga til Smack til meldingstenesta.

Smack 4.4 tilbyr ProxyInfo-fabrikkar for HTTP, SOCKS4 og SOCKS5. Fest det resulterande objektet til XMPP-tilkoplingsbyggjaren:

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();

Dette er eit konfigurasjonsfragment for eit eksisterande Smack 4.4-oppsett. Applikasjonen rundt handsamar dei kontrollerte unntaka til byggjaren og leverer proxy-påloggingsinformasjonen. Den eksplisitte verten og porten står for det faktiske TCP-endepunktet til XMPP-tenesta.

Det er tre namn med ulike roller:

  • proxy.example.net er mellomleddet som tek imot den fyrste tilkoplinga.
  • xmpp-node.example.net er tenarendepunktet proxyen blir beden om å nå.
  • chat.example.net er XMPP-tenestedomenet, til dømes domenet etter @ i JID-en til ein konto.

Ei teneste kan bruka same namn for dei to siste, men eit proxy-vertsnamn erstattar ingen av dei. Behald den tiltenkte identiteten til XMPP-tenesta i tilkoplinga og TLS-valideringa hennar.

For ein HTTP-proxy brukar du ProxyInfo.forHttpProxy med rett proxy-port og påloggingsinformasjon. Den vegen krev ein proxy som kan tunnelera XMPP-tilkoplinga og tillata målporten. Ein proxy som handterer HTTPS-nettlesing tillèt ikkje automatisk TCP-tilkoplingar til ei XMPP-teneste på 5222.

Den påkravde tryggleiksmodusen i fragmentet gjer TLS til eit vilkår for XMPP-tilkoplinga. Han utfører ikkje proxy-autentisering, og proxy-påloggingsinformasjonen loggar ikkje inn på ein XMPP-konto. Konfigurer XMPP-kontoen gjennom den vanlege autentiseringsflyten til Smack etter at ruta og den trygge økta er etablerte.

Hald døme innanfor si eiga API-generasjon. Dei eldre konstruktørbaserte ConnectionConfiguration-døma uttrykkjer same rutingkonseptet, men byggjaren i Smack 4.4 er grensesnittet som blir brukt her. Det er ikkje naudsynt å gjengje vertsnamna til ein utdatert meldingsleverandør for å bruka konseptet på ei gjeldande XMPP-teneste.

Relaterte artiklar