I-configure ang koneksyon na talagang nagdadala ng XMPP stream. Ang pagtatakda ng proxy sa isang URLConnection na walang kaugnayan ay hindi nagre-redirect ng TCP na koneksyon ng Smack papunta sa serbisyo ng pagmemensahe.

Nagbibigay ang Smack 4.4 ng mga pabrika ng ProxyInfo para sa HTTP, SOCKS4 at SOCKS5. Ikalakip ang resultang bagay sa builder ng koneksyon ng 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();

Ito ay isang bahagi ng configuration para sa umiiral na setup ng Smack 4.4. Hinahawakan ng nakapaligid na application ang mga check na exception ng builder at nagbibigay ng mga kredensyal ng proxy. Ang tahasang host at port ay kumakatawan sa aktwal na TCP endpoint ng serbisyo ng XMPP.

May tatlong pangalan na may magkakaibang tungkulin:

  • proxy.example.net ang tagapamagitan na tumatanggap ng paunang koneksyon.
  • xmpp-node.example.net ang endpoint ng server na hinihiling na maabot ng proxy.
  • chat.example.net ang domain ng serbisyo ng XMPP, tulad ng domain pagkatapos ng @ sa JID ng account.

Maaaring gamitin ng isang serbisyo ang parehong pangalan para sa huling dalawa, ngunit hindi pinapalitan ng hostname ng proxy ang alinman sa kanila. Panatilihin ang nilalayong pagkakakilanlan ng serbisyo ng XMPP sa koneksyon at sa pagpapatunay ng TLS nito.

Para sa proxy na HTTP, gamitin ang ProxyInfo.forHttpProxy kasama ang naaangkop na port ng proxy at mga kredensyal. Ang landas na iyon ay nangangailangan ng proxy na kayang mag-tunnel ng koneksyon ng XMPP at pahintulutan ang port ng destinasyon nito. Ang proxy na humahawak ng pagba-browse sa web na HTTPS ay hindi awtomatikong pinapahintulutan ang mga TCP na koneksyon sa serbisyo ng XMPP sa 5222.

Ang kinakailangang mode ng seguridad sa bahagi ay ginagawang kundisyon ng koneksyon ng XMPP ang TLS. Hindi ito nagsasagawa ng pagpapatunay ng proxy, at ang mga kredensyal ng proxy ay hindi nagla-log in sa account ng XMPP. I-configure ang account ng XMPP sa pamamagitan ng normal na daloy ng pagpapatunay ng Smack pagkatapos maitatag ang ruta at secure na session.

Panatilihin ang mga halimbawa sa loob ng kanilang henerasyon ng API. Ang mas lumang mga halimbawa ng ConnectionConfiguration na nakabatay sa constructor ay nagpapahayag ng parehong konsepto ng routing, ngunit ang builder ng Smack 4.4 ang interface na ginagamit dito. Hindi kailangan na muling gawin ang mga hostname ng isang lipas na provider ng pagmemensahe upang ilapat ang konseptong iyon sa kasalukuyang serbisyo ng XMPP.

Kaugnay na mga artikulo