وہ کنکشن ترتیب دیں جو درحقیقت 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 سروس پر لاگو کرنے کے لیے کسی متروک پیغام رسانی فراہم کنندہ کے ہوسٹ نام دوبارہ بنانے کی ضرورت نہیں۔

متعلقہ مضامین