Smack 4.4 ରେ ProxyInfo ସହିତ XMPP ପ୍ରକ୍ସି ସେଟିଂସ୍
ProxyInfo କୁ XMPP ସଂଯୋଗ ବିଲଡର ସହିତ ସଂଯୁକ୍ତ କରନ୍ତୁ, ପ୍ରକ୍ସି, ସେବା-ଡୋମେନ ଏବଂ ସର୍ଭର-ହୋଷ୍ଟ ପାଇଁ ଅଲଗା ସେଟିଂସ୍ ସହିତ।
ପ୍ରକୃତରେ 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 ସେବାରେ ପ୍ରୟୋଗ କରିବା ପାଇଁ ଅପ୍ରଚଳିତ ସନ୍ଦେଶ ପ୍ରଦାନକାରୀର ହୋଷ୍ଟନାମ ପୁନର୍ନିର୍ମାଣ କରିବା ଆବଶ୍ୟକ ନାହିଁ।