XMPP-proxyindstillinger i Smack 4.4 med ProxyInfo
Vedhæft ProxyInfo til XMPP-forbindelsesbyggeren med særskilte indstillinger for proxy, tjenestedomæne og servervært.
Konfigurer den forbindelse, der faktisk bærer XMPP-strømmen. At sætte en proxy på en urelateret URLConnection omdirigerer ikke Smacks TCP-forbindelse til beskedtjenesten.
Smack 4.4 leverer ProxyInfo-fabrikker til HTTP, SOCKS4 og SOCKS5. Vedhæft det resulterende objekt til XMPP-forbindelsesbyggeren:
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 konfigurationsfragment til et eksisterende Smack 4.4-opsætning. Den omgivende applikation håndterer byggerens kontrollerede undtagelser og leverer proxy-legitimationsoplysningerne. Den eksplicitte vært og port står for XMPP-tjenestens faktiske TCP-endepunkt.
Der er tre navne med forskellige roller:
proxy.example.neter mellemleddet, der modtager den indledende forbindelse.xmpp-node.example.neter serverendepunktet, som proxyen anmodes om at nå.chat.example.neter XMPP-tjenestedomænet, fx domænet efter@i en kontos JID.
En tjeneste kan bruge samme navn til de to sidste, men et proxy-værtsnavn erstatter ingen af dem. Bevar den tilsigtede XMPP-tjenesteidentitet i forbindelsen og dens TLS-validering.
Brug ProxyInfo.forHttpProxy til en HTTP-proxy med den relevante proxy-port og legitimationsoplysninger. Den vej kræver en proxy, der kan tunnelere XMPP-forbindelsen og tillade dens destinationsport. En proxy, der håndterer HTTPS-webbrowsing, tillader ikke automatisk TCP-forbindelser til en XMPP-tjeneste på 5222.
Den påkrævede sikkerhedstilstand i fragmentet gør TLS til en betingelse for XMPP-forbindelsen. Den udfører ikke proxy-godkendelse, og proxy-legitimationsoplysningerne logger ikke ind på en XMPP-konto. Konfigurer XMPP-kontoen via Smacks normale godkendelsesflow, efter at ruten og den sikre session er etableret.
Hold eksempler inden for deres API-generation. De ældre konstruktørbaserede ConnectionConfiguration-eksempler udtrykker samme routingkoncept, men Smack 4.4's bygger er den grænseflade, der bruges her. Der er ingen grund til at genskabe en forældet beskedudbyders værtsnavne for at anvende dette koncept på en aktuel XMPP-tjeneste.