Konfigurasikan sambungan yang benar-benar membawa aliran XMPP. Menetapkan proksi pada URLConnection yang tidak berkaitan tidak mengubah hala sambungan TCP Smack ke perkhidmatan pemesejan.

Smack 4.4 menyediakan kilang ProxyInfo untuk HTTP, SOCKS4 dan SOCKS5. Lampirkan objek yang terhasil pada pembina sambungan 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();

Ini ialah serpihan konfigurasi untuk persediaan Smack 4.4 sedia ada. Aplikasi di sekelilingnya mengendalikan pengecualian tersemak pembina dan membekalkan kelayakan proksi. Hos dan port eksplisit mewakili titik akhir TCP sebenar perkhidmatan XMPP.

Terdapat tiga nama dengan peranan berbeza:

  • proxy.example.net ialah perantara yang menerima sambungan awal.
  • xmpp-node.example.net ialah titik akhir pelayan yang diminta dicapai oleh proksi.
  • chat.example.net ialah domain perkhidmatan XMPP, seperti domain selepas @ dalam JID akaun.

Perkhidmatan boleh menggunakan nama yang sama untuk dua yang terakhir, tetapi nama hos proksi tidak menggantikan mana-mana daripadanya. Kekalkan identiti perkhidmatan XMPP yang dimaksudkan dalam sambungan dan pengesahan TLS-nya.

Untuk proksi HTTP, gunakan ProxyInfo.forHttpProxy dengan port proksi dan kelayakan yang sesuai. Laluan itu memerlukan proksi yang mampu menerowong sambungan XMPP dan membenarkan port destinasinya. Proksi yang mengendalikan pelayaran web HTTPS tidak membenarkan sambungan TCP ke perkhidmatan XMPP pada 5222 secara automatik.

Mod keselamatan wajib dalam serpihan menjadikan TLS syarat sambungan XMPP. Ia tidak melakukan pengesahan proksi, dan kelayakan proksi tidak log masuk ke akaun XMPP. Konfigurasikan akaun XMPP melalui aliran pengesahan biasa Smack selepas laluan dan sesi selamat diwujudkan.

Kekalkan contoh dalam generasi API masing-masing. Contoh ConnectionConfiguration lama berasaskan pembina menyatakan konsep penghalaan yang sama, tetapi pembina Smack 4.4 ialah antara muka yang digunakan di sini. Tidak perlu menghasilkan semula nama hos penyedia pemesejan yang lapuk untuk menggunakan konsep itu pada perkhidmatan XMPP semasa.

Artikel berkaitan