Ρυθμίσεις διαμεσολαβητή XMPP στο Smack 4.4 με το ProxyInfo
Επισυνάψτε το ProxyInfo στον builder σύνδεσης XMPP, με ξεχωριστές ρυθμίσεις για διαμεσολαβητή, τομέα υπηρεσίας και κεντρικό υπολογιστή διακομιστή.
Ρυθμίστε τη σύνδεση που μεταφέρει πραγματικά τη ροή XMPP. Η ρύθμιση διαμεσολαβητή σε ένα άσχετο URLConnection δεν ανακατευθύνει τη σύνδεση TCP του Smack στην υπηρεσία ανταλλαγής μηνυμάτων.
Το Smack 4.4 παρέχει εργοστάσια ProxyInfo για HTTP, SOCKS4 και SOCKS5. Επισυνάψτε το αντικείμενο που προκύπτει στον builder σύνδεσης 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. Η περιβάλλουσα εφαρμογή χειρίζεται τις ελεγχόμενες εξαιρέσεις του builder και παρέχει τα διαπιστευτήρια του διαμεσολαβητή. Ο ρητός κεντρικός υπολογιστής και η θύρα αντιπροσωπεύουν το πραγματικό τελικό σημείο TCP της υπηρεσίας XMPP.
Υπάρχουν τρία ονόματα με διαφορετικούς ρόλους:
proxy.example.netείναι ο μεσάζων που δέχεται την αρχική σύνδεση.xmpp-node.example.netείναι το τελικό σημείο του διακομιστή που καλείται να προσεγγίσει ο διαμεσολαβητής.chat.example.netείναι ο τομέας υπηρεσίας XMPP, όπως ο τομέας μετά το@στο JID ενός λογαριασμού.
Μια υπηρεσία μπορεί να χρησιμοποιεί το ίδιο όνομα για τα δύο τελευταία, αλλά ένα όνομα κεντρικού υπολογιστή διαμεσολαβητή δεν αντικαθιστά κανένα από τα δύο. Διατηρήστε τη σκοπούμενη ταυτότητα της υπηρεσίας XMPP στη σύνδεση και στην επικύρωση TLS της.
Για διαμεσολαβητή HTTP χρησιμοποιήστε το ProxyInfo.forHttpProxy με την κατάλληλη θύρα και τα κατάλληλα διαπιστευτήρια. Αυτή η διαδρομή απαιτεί διαμεσολαβητή ικανό να διοχετεύσει τη σύνδεση XMPP και να επιτρέψει τη θύρα προορισμού της. Ένας διαμεσολαβητής που εξυπηρετεί περιήγηση ιστού HTTPS δεν επιτρέπει αυτόματα συνδέσεις TCP σε υπηρεσία XMPP στη θύρα 5222.
Η απαιτούμενη λειτουργία ασφαλείας στο απόσπασμα καθιστά το TLS προϋπόθεση της σύνδεσης XMPP. Δεν εκτελεί έλεγχο ταυτότητας διαμεσολαβητή και τα διαπιστευτήρια του διαμεσολαβητή δεν συνδέονται σε λογαριασμό XMPP. Ρυθμίστε τον λογαριασμό XMPP μέσω της κανονικής ροής ελέγχου ταυτότητας του Smack αφού εδραιωθούν η διαδρομή και η ασφαλής συνεδρία.
Κρατήστε τα παραδείγματα εντός της γενιάς API τους. Τα παλαιότερα παραδείγματα ConnectionConfiguration που βασίζονται σε κατασκευαστή εκφράζουν την ίδια έννοια δρομολόγησης, αλλά ο builder του Smack 4.4 είναι η διεπαφή που χρησιμοποιείται εδώ. Δεν χρειάζεται να αναπαράγετε ονόματα κεντρικών υπολογιστών ενός παρωχημένου παρόχου μηνυμάτων για να εφαρμόσετε αυτή την έννοια σε μια τρέχουσα υπηρεσία XMPP.