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 सेवामा लागू गर्न अप्रचलित सन्देश प्रदायकको होस्टनेम पुनःउत्पादन गर्नु आवश्यक छैन।

सम्बन्धित लेखहरू