Smack 4.4 এ XMPP প্রক্সি সেটিংস ProxyInfo সহ
XMPP সংযোগ বিল্ডারে ProxyInfo যুক্ত করুন, আলাদা প্রক্সি, সেবা-ডোমেইন ও সার্ভার-হোস্ট সেটিংস সহ।
যে সংযোগটি প্রকৃতপক্ষে 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 সেটআপের জন্য কনফিগারেশন খণ্ড। চারপাশের অ্যাপ্লিকেশনটি বিল্ডারের চেকড এক্সসেপশন পরিচালনা করে এবং প্রক্সি শংসাপত্র সরবরাহ করে। স্পষ্ট host ও port XMPP সেবার প্রকৃত TCP এন্ডপয়েন্ট নির্দেশ করে।
ভিন্ন ভূমিকা বিশিষ্ট তিনটি নাম রয়েছে:
proxy.example.netহলো মধ্যস্থতাকারী যা প্রাথমিক সংযোগ গ্রহণ করে।xmpp-node.example.netহলো সার্ভার এন্ডপয়েন্ট যেখানে পৌঁছাতে প্রক্সিকে অনুরোধ করা হয়।chat.example.netহলো XMPP সেবা ডোমেইন, যেমন অ্যাকাউন্টের JID-এ@-এর পরে থাকা ডোমেইন।
একটি সেবা শেষের দুটির জন্য একই নাম ব্যবহার করতে পারে, তবে প্রক্সি hostname এদের কোনোটিরই বিকল্প নয়। সংযোগে এবং তার TLS যাচাইয়ে অভীষ্ট XMPP সেবা পরিচয় সংরক্ষণ করুন।
HTTP প্রক্সির জন্য উপযুক্ত প্রক্সি port ও শংসাপত্র সহ ProxyInfo.forHttpProxy ব্যবহার করুন। এই পথে এমন প্রক্সি প্রয়োজন যা XMPP সংযোগ টানেল করতে পারে এবং তার গন্তব্য port অনুমোদন করে। HTTPS ওয়েব ব্রাউজিং পরিচালনা করে এমন প্রক্সি 5222-এ XMPP সেবার প্রতি TCP সংযোগ স্বয়ংক্রিয়ভাবে অনুমোদন করে না।
খণ্ডটিতে থাকা আবশ্যক নিরাপত্তা মোড TLS-কে XMPP সংযোগের শর্ত করে তোলে। এটি প্রক্সি প্রমাণীকরণ করে না, এবং প্রক্সি শংসাপত্র XMPP অ্যাকাউন্টে লগ ইন করে না। পথ ও নিরাপদ সেশন প্রতিষ্ঠার পর Smack-এর স্বাভাবিক প্রমাণীকরণ প্রবাহের মাধ্যমে XMPP অ্যাকাউন্ট কনফিগার করুন।
উদাহরণগুলো তাদের API প্রজন্মের ভেতরে রাখুন। পুরোনো কনস্ট্রাক্টর-ভিত্তিক ConnectionConfiguration উদাহরণ একই রাউটিং ধারণা প্রকাশ করে, তবে এখানে ব্যবহৃত ইন্টারফেস হলো Smack 4.4-এর বিল্ডার। সেই ধারণা বর্তমান XMPP সেবায় প্রয়োগ করতে একটি অচল বার্তা প্রদানকারীর hostname পুনরুৎপাদন করার প্রয়োজন নেই।