ProxyInfo ဖြင့် Smack 4.4 တွင် XMPP ပရောက်စီ ဆက်တင်များ
ProxyInfo ကို XMPP ချိတ်ဆက်မှု builder တွင် ချိတ်ဆက်ပြီး ပရောက်စီ၊ ဝန်ဆောင်မှု ဒိုမိန်းနှင့် ဆာဗာ ဟိုစ့် ဆက်တင်များကို သီးခြားထားပါ။
XMPP စီးကြောင်းကို အမှန်တကယ် သယ်ဆောင်သော ချိတ်ဆက်မှုကို ပြင်ဆင်ပါ။ မသက်ဆိုင်သော URLConnection တွင် ပရောက်စီ သတ်မှတ်ခြင်းသည် Smack ၏ TCP ချိတ်ဆက်မှုကို မက်ဆေ့ချ် ဝန်ဆောင်မှုသို့ လမ်းကြောင်းပြောင်းမပေးပါ။
Smack 4.4 သည် HTTP၊ SOCKS4 နှင့် SOCKS5 အတွက် ProxyInfo စက်ရုံများကို ထောက်ပံ့သည်။ ရလာသော အရာဝတ္တုကို XMPP ချိတ်ဆက်မှု builder တွင် ချိတ်ဆက်ပါ-
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 ဆက်တင်အတွက် ပြင်ဆင်သတ်မှတ်မှု အပိုင်းအစ ဖြစ်သည်။ ပတ်ဝန်းကျင် အပလီကေးရှင်းသည် builder ၏ စစ်ဆေးပြီး ခြွင်းချက်များကို ကိုင်တွယ်ပြီး ပရောက်စီ အထောက်အထားများကို ထောက်ပံ့သည်။ ရှင်းလင်းစွာ သတ်မှတ်ထားသော ဟိုစ့်နှင့် ပို့တ်သည် 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 အကောင့်သို့ လော့ဂ်အင်ဝင်ခြင်း မရှိပါ။ လမ်းကြောင်းနှင့် လုံခြုံသော ဆက်ရှင်ကို တည်ထောင်ပြီးနောက် Smack ၏ ပုံမှန် စစ်မှန်ကြောင်း အတည်ပြုမှု စီးကြောင်းဖြင့် XMPP အကောင့်ကို ပြင်ဆင်ပါ။
နမူနာများကို ၎င်းတို့၏ API မျိုးဆက်အတွင်း ထားရှိပါ။ ရှေးဟောင်း ကွန်စထရပ်တာ အခြေခံ ConnectionConfiguration နမူနာများသည် တူညီသော လမ်းကြောင်းသတ်မှတ်မှု အယူအဆကို ဖော်ပြသော်လည်း ဤနေရာတွင် အသုံးပြုသော အင်တာဖေ့စ်မှာ Smack 4.4 ၏ builder ဖြစ်သည်။ ထို အယူအဆကို လက်ရှိ XMPP ဝန်ဆောင်မှုတွင် ကျင့်သုံးရန် ခေတ်ကုန်သော မက်ဆေ့ချ် ဝန်ဆောင်မှုပေးသူ၏ ဟိုစ့်အမည်များကို ပြန်လည် ဖန်တီးရန် မလိုအပ်ပါ။