प्रत्यक्षपणे 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 मधील @ नंतरचा डोमेन.

सेवा शेवटच्या दोनसाठी एकच नाव वापरू शकते, परंतु प्रॉक्सी होस्टनेम त्यांपैकी कोणतेही बदलत नाही. कनेक्शनमध्ये आणि त्याच्या TLS पडताळणीत हेतू असलेली XMPP सेवा ओळख टिकवून ठेवा.

HTTP प्रॉक्सीसाठी योग्य प्रॉक्सी पोर्ट आणि क्रेडेन्शियल्ससह ProxyInfo.forHttpProxy वापरा. त्या मार्गासाठी XMPP कनेक्शन टनेल करू शकणारा आणि त्याचा गंतव्य पोर्ट परवानगी देणारा प्रॉक्सी आवश्यक आहे. HTTPS वेब ब्राउझिंग हाताळणारा प्रॉक्सी 5222 वरील XMPP सेवेसाठी TCP कनेक्शन स्वयंचलितपणे परवानगी देत नाही.

तुकड्यातील अनिवार्य सुरक्षा मोड TLS ला XMPP कनेक्शनची अट बनवतो. तो प्रॉक्सी प्रमाणीकरण करत नाही, आणि प्रॉक्सी क्रेडेन्शियल्स XMPP खात्यात लॉग इन करत नाहीत. मार्ग आणि सुरक्षित सत्र प्रस्थापित केल्यानंतर Smack च्या नेहमीच्या प्रमाणीकरण प्रवाहाद्वारे XMPP खाते कॉन्फिगर करा.

उदाहरणे त्यांच्या API पिढीत ठेवा. जुनी कन्स्ट्रक्टर-आधारित ConnectionConfiguration उदाहरणे तीच राउटिंग संकल्पना व्यक्त करतात, परंतु येथे वापरलेला इंटरफेस Smack 4.4 चा बिल्डर आहे. ती संकल्पना सध्याच्या XMPP सेवेवर लागू करण्यासाठी अप्रचलित मेसेजिंग प्रदात्याची होस्टनेम पुन्हा तयार करण्याची गरज नाही.

संबंधित लेख