Lungiselela uxhumano oluthwala ngempela umfudlana we-XMPP. Ukusetha i-proxy ku-URLConnection engahlobene akuguquli uxhumano lwe-TCP lwe-Smack luyise enkonzweni yemilayezo.

I-Smack 4.4 ihlinzeka ngamafemuwali we-ProxyInfo e-HTTP, i-SOCKS4 ne-SOCKS5. Namathisela into etholakele kumakhi wokuxhumana we-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();

Lena iyingxenye yokulungiselela yesethaphu ye-Smack 4.4 ekhona. Uhlelo oluzungezile lubhekana namaphutha ahloliwe kamakhi futhi lunikeze izifakazelo ze-proxy. I-host ne-port ezicacisiwe zimelela iphoyinti lokugcina le-TCP lenkonzo ye-XMPP.

Kunamagama amathathu anendima ehlukene:

  • proxy.example.net ingumlamuli owamukela uxhumano lokuqala.
  • xmpp-node.example.net iphoyinti lokugcina leseva i-proxy ecelwa ukuba ifinyelele kulo.
  • chat.example.net isizinda senkonzo ye-XMPP, njengesizinda esingemva kwe-@ ku-JID ye-akhawunti.

Inkonzo ingasebenzisa igama elifanayo kulezi zimbili zokugcina, kodwa igama le-host ye-proxy alithathi indawo yanoma yiliphi kulo. Gcina ubunikazi benkonzo ye-XMPP obuhlosiwe kuxhumano nasekuqinisekisweni kwayo kwe-TLS.

Nge-proxy ye-HTTP, sebenzisa i-ProxyInfo.forHttpProxy ne-port ye-proxy efanele nezifakazelo. Leyo ndlela idinga i-proxy ekwazi ukudlulisa uxhumano lwe-XMPP emhubheni nokuvumela i-port yayo yendawo ekuyiwa kuyo. I-proxy ephethe ukuphequlula kwewebhu nge-HTTPS ayivumeli ngokuzenzakalela ukuxhumana kwe-TCP enkonzweni ye-XMPP ku-5222.

Imodi yokuphepha edingekayo engxenyeni yenza i-TLS ibe umbandela wokuxhumana kwe-XMPP. Ayikwenzi ukuqinisekiswa kwe-proxy, futhi izifakazelo ze-proxy azingeni ku-akhawunti ye-XMPP. Lungiselela i-akhawunti ye-XMPP ngokugeleza kokujwayelekile kokuqinisekisa kwe-Smack ngemva kokusungula indlela neseshini ephephile.

Gcina izibonelo zingaphakathi kwesizukulwane sazo se-API. Izibonelo zakudala ze-ConnectionConfiguration ezisekelwe kumakhi ziveza umqondo ofanayo wokuhlela indlela, kodwa umakhi we-Smack 4.4 yiwo isixhumi esisetshenziswe lapha. Asikho isidingo sokuphinda kukhiqizwe amagama e-host kamhlinzeki wemilayezo ophelelwe yisikhathi ukuze lowo mqondo usetshenziswe enkonzweni ye-XMPP yamanje.

Izihloko ezihlobene