ProxyInfo ನೊಂದಿಗೆ Smack 4.4 ನಲ್ಲಿ 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.netXMPP ಸೇವಾ ಡೊಮೇನ್, ಉದಾಹರಣೆಗೆ ಖಾತೆಯ JID ನಲ್ಲಿ@ನಂತರದ ಡೊಮೇನ್.
ಸೇವೆಯು ಕೊನೆಯ ಎರಡಕ್ಕೆ ಒಂದೇ ಹೆಸರನ್ನು ಬಳಸಬಹುದು, ಆದರೆ ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್ನ ಹೆಸರು ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನೂ ಬದಲಿಸುವುದಿಲ್ಲ. ಉದ್ದೇಶಿತ XMPP ಸೇವಾ ಗುರುತನ್ನು ಸಂಪರ್ಕದಲ್ಲಿ ಮತ್ತು ಅದರ TLS ಪರಿಶೀಲನೆಯಲ್ಲಿ ಕಾಪಾಡಿ.
HTTP ಪ್ರಾಕ್ಸಿಗಾಗಿ ಸೂಕ್ತವಾದ ಪ್ರಾಕ್ಸಿ ಪೋರ್ಟ್ ಮತ್ತು ರುಜುವಾತುಗಳೊಂದಿಗೆ ProxyInfo.forHttpProxy ಬಳಸಿ. ಆ ಮಾರ್ಗಕ್ಕೆ XMPP ಸಂಪರ್ಕವನ್ನು ಸುರಂಗ ಮಾಡಲು ಮತ್ತು ಅದರ ಗಮ್ಯಸ್ಥಾನ ಪೋರ್ಟ್ ಅನ್ನು ಅನುಮತಿಸಲು ಸಮರ್ಥವಾದ ಪ್ರಾಕ್ಸಿ ಬೇಕು. HTTPS ವೆಬ್ ಬ್ರೌಸಿಂಗ್ ನಿರ್ವಹಿಸುವ ಪ್ರಾಕ್ಸಿ 5222 ನಲ್ಲಿ XMPP ಸೇವೆಗೆ TCP ಸಂಪರ್ಕಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮತಿಸುವುದಿಲ್ಲ.
ತುಣುಕಿನಲ್ಲಿನ ಕಡ್ಡಾಯ ಭದ್ರತಾ ಮೋಡ್ TLS ಅನ್ನು XMPP ಸಂಪರ್ಕದ ಷರತ್ತಾಗಿಸುತ್ತದೆ. ಅದು ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣವನ್ನು ಮಾಡುವುದಿಲ್ಲ, ಮತ್ತು ಪ್ರಾಕ್ಸಿ ರುಜುವಾತುಗಳು XMPP ಖಾತೆಗೆ ಲಾಗಿನ್ ಆಗುವುದಿಲ್ಲ. ಮಾರ್ಗ ಮತ್ತು ಸುರಕ್ಷಿತ ಸೆಶನ್ ಸ್ಥಾಪಿಸಿದ ನಂತರ Smack ನ ಸಾಮಾನ್ಯ ದೃಢೀಕರಣ ಹರಿವಿನ ಮೂಲಕ XMPP ಖಾತೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.
ಉದಾಹರಣೆಗಳನ್ನು ಅವುಗಳ API ಪೀಳಿಗೆಯೊಳಗೆ ಇರಿಸಿ. ಹಳೆಯ ಕನ್ಸ್ಟ್ರಕ್ಟರ್-ಆಧಾರಿತ ConnectionConfiguration ಉದಾಹರಣೆಗಳು ಅದೇ ರೂಟಿಂಗ್ ಪರಿಕಲ್ಪನೆಯನ್ನು ವ್ಯಕ್ತಪಡಿಸುತ್ತವೆ, ಆದರೆ ಇಲ್ಲಿ ಬಳಸಿದ ಇಂಟರ್ಫೇಸ್ Smack 4.4 ನ ಬಿಲ್ಡರ್. ಆ ಪರಿಕಲ್ಪನೆಯನ್ನು ಪ್ರಸ್ತುತ XMPP ಸೇವೆಗೆ ಅನ್ವಯಿಸಲು ಬಳಕೆಯಲ್ಲಿಲ್ಲದ ಸಂದೇಶ ಪೂರೈಕೆದಾರರ ಹೋಸ್ಟ್ ಹೆಸರುಗಳನ್ನು ಮರುಸೃಷ್ಟಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.