XMPP урсгалыг үнэхээр зөөвөрлөж буй холболтыг тохируулаарай. Хамааралгүй URLConnection дээр прокси тавих нь Smack-ийн TCP холболтыг мессежийн үйлчилгээ рүү чиглүүлэхгүй.

Smack 4.4 нь HTTP, SOCKS4, SOCKS5-д зориулсан ProxyInfo үйлдвэрүүдийг санал болгодог. Үүссэн объектыг 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();

Энэ нь одоо байгаа Smack 4.4 тохиргоонд зориулсан тохиргооны хэсэг юм. Хүрээлэх аппликейшн бүтээгчийн шалгагдсан үл хамаарах зүйлсийг зохицуулж, проксигийн итгэмжлэлийг өгдөг. Тодорхой заасан хост болон порт нь XMPP үйлчилгээний бодит TCP төгсгөлийн цэгийг илэрхийлнэ.

Өөр өөр үүрэгтэй гурван нэр байна:

  • proxy.example.net анхны холболтыг хүлээн авдаг зуучлагч юм.
  • xmpp-node.example.net проксид хүрэхийг шаарддаг серверийн төгсгөлийн цэг юм.
  • chat.example.net XMPP үйлчилгээний домэйн, жишээ нь бүртгэлийн JID дахь @-ийн дараах домэйн.

Үйлчилгээ сүүлийн хоёрт нэг нэрийг ашиглаж болох ч проксигийн хостын нэр аль нэгийг нь орлохгүй. XMPP үйлчилгээний зорилготой таних тэмдгийг холболт болон түүний TLS баталгаажуулалтад хадгалаарай.

HTTP проксигийн хувьд тохирох прокси порт болон итгэмжлэлтэйгээр ProxyInfo.forHttpProxy ашиглаарай. Энэ зам нь XMPP холболтыг туннельдэж, очих портыг нь зөвшөөрөх чадвартай прокси шаарддаг. HTTPS вэб үзэлтийг гүйцэтгэдэг прокси 5222 дээрх XMPP үйлчилгээ рүү TCP холболтыг автоматаар зөвшөөрдөггүй.

Хэсэг дэх заавал шаардлагатай аюулгүй байдлын горим TLS-ийг XMPP холболтын нөхцөл болгодог. Энэ нь прокси баталгаажуулалт хийхгүй бөгөөд проксигийн итгэмжлэл XMPP бүртгэлд нэвтрэхгүй. Маршрут болон аюулгүй сессийг тогтоосны дараа XMPP бүртгэлийг Smack-ийн ердийн баталгаажуулалтын урсгалаар тохируулаарай.

Жишээнүүдийг өөрийн API үеийн хүрээнд байлгаарай. Хуучин конструкторт суурилсан ConnectionConfiguration жишээнүүд ижил маршрутжуулалтын ойлголтыг илэрхийлдэг ч энд ашигласан интерфэйс нь Smack 4.4-ийн бүтээгч юм. Тэр ойлголтыг одоогийн XMPP үйлчилгээнд хэрэглэхийн тулд хуучирсан мессежийн үйлчилгээ үзүүлэгчийн хостын нэрсийг дахин бүтээх шаардлагагүй.

Холбоотой нийтлэлүүд