Configuració de proxy XMPP a Smack 4.4 amb ProxyInfo
Adjunteu ProxyInfo al constructor de connexió XMPP, amb paràmetres separats de proxy, domini de servei i host del servidor.
Configureu la connexió que realment transporta el flux XMPP. Establir un proxy en un URLConnection no relacionat no redirigeix la connexió TCP de Smack cap al servei de missatgeria.
Smack 4.4 ofereix fàbriques ProxyInfo per a HTTP, SOCKS4 i SOCKS5. Adjunteu l'objecte resultant al constructor de connexió XMPP:
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();Aquest és un fragment de configuració per a una instal·lació existent de Smack 4.4. L'aplicació que l'envolta gestiona les excepcions marcades del constructor i proporciona les credencials del proxy. L'amfitrió i el port explícits representen el punt final TCP real del servei XMPP.
Hi ha tres noms amb funcions diferents:
proxy.example.netés l'intermediari que rep la connexió inicial.xmpp-node.example.netés el punt final del servidor al qual es demana al proxy que arribi.chat.example.netés el domini del servei XMPP, com el domini posterior a@al JID d'un compte.
Un servei pot utilitzar el mateix nom per als dos últims, però un nom d'amfitrió de proxy no substitueix cap dels dos. Preserveu la identitat prevista del servei XMPP a la connexió i a la seva validació TLS.
Per a un proxy HTTP, feu servir ProxyInfo.forHttpProxy amb el port de proxy i les credencials adequats. Aquest camí necessita un proxy capaç de tunelar la connexió XMPP i de permetre el seu port de destinació. Un proxy que gestiona la navegació web HTTPS no permet automàticament connexions TCP a un servei XMPP al 5222.
El mode de seguretat obligatori del fragment fa de TLS una condició de la connexió XMPP. No realitza autenticació de proxy, i les credencials del proxy no inicien sessió en un compte XMPP. Configureu el compte XMPP mitjançant el flux d'autenticació habitual de Smack després d'establir la ruta i la sessió segura.
Mantingueu els exemples dins de la seva generació d'API. Els exemples més antics de ConnectionConfiguration basats en constructor expressen el mateix concepte d'encaminament, però el constructor de Smack 4.4 és la interfície que s'utilitza aquí. No cal reproduir els noms d'amfitrió d'un proveïdor de missatgeria obsolet per aplicar aquest concepte a un servei XMPP actual.