Konfigurer tilkoblingen som faktisk bærer XMPP-strømmen. Å sette en proxy på en urelatert URLConnection omdirigerer ikke Smacks TCP-tilkobling til meldingstjenesten.

Smack 4.4 tilbyr ProxyInfo-fabrikker for HTTP, SOCKS4 og SOCKS5. Fest det resulterende objektet til XMPP-tilkoblingsbyggeren:

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 et konfigurasjonsfragment for et eksisterende Smack 4.4-oppsett. Applikasjonen rundt håndterer byggerens kontrollerte unntak og leverer proxy-påloggingsinformasjonen. Den eksplisitte verter og porten står for XMPP-tjenestens faktiske TCP-endepunkt.

Det er tre navn med ulike roller:

  • proxy.example.net er mellomleddet som mottar den første tilkoblingen.
  • xmpp-node.example.net er serverendepunktet proxyen blir bedt om å nå.
  • chat.example.net er XMPP-tjenestedomenet, for eksempel domenet etter @ i en kontos JID.

En tjeneste kan bruke samme navn for de to siste, men et proxy-vertsnavn erstatter ingen av dem. Behold den tiltenkte identiteten til XMPP-tjenesten i tilkoblingen og dens TLS-validering.

For en HTTP-proxy bruker du ProxyInfo.forHttpProxy med riktig proxy-port og påloggingsinformasjon. Den veien krever en proxy som kan tunnellere XMPP-tilkoblingen og tillate målporten. En proxy som håndterer HTTPS-nettlesing tillater ikke automatisk TCP-tilkoblinger til en XMPP-tjeneste på 5222.

Den påkrevde sikkerhetsmodusen i fragmentet gjør TLS til en betingelse for XMPP-tilkoblingen. Den utfører ikke proxy-autentisering, og proxy-påloggingsinformasjonen logger ikke inn på en XMPP-konto. Konfigurer XMPP-kontoen gjennom Smacks vanlige autentiseringsflyt etter at ruten og den sikre økten er etablert.

Hold eksempler innenfor sin API-generasjon. De eldre konstruktørbaserte ConnectionConfiguration-eksemplene uttrykker samme rutingkonsept, men byggeren i Smack 4.4 er grensesnittet som brukes her. Det er ikke nødvendig å gjengi vertsnavnene til en utdatert meldingsleverandør for å bruke konseptet på en gjeldende XMPP-tjeneste.

Relaterte artikler