Τι πρέπει να επιστρέφει ένα εργοστάσιο υποδοχών SOCKS του Jedis
Το Jedis 5.2.0 περιμένει μια συνδεδεμένη υποδοχή έτοιμη για Redis, συμπεριλαμβανομένου TLS όταν απαιτείται· η επιλογή διαμεσολαβητή μόνη της δεν παρέχει αυτή τη σύνδεση.
JedisSocketFactory.createSocket πρέπει να επιστρέφει μια συνδεδεμένη υποδοχή έτοιμη να μεταφέρει κίνηση Redis. Στο Jedis 5.2.0 η εφαρμογή παρέχει αυτό το εργοστάσιο και τη διαμόρφωση του πελάτη Redis εδώ:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory υλοποιεί το redis.clients.jedis.JedisSocketFactory, και το redisConfig είναι το JedisClientConfig της εφαρμογής. Να είστε έτοιμοι για σύνδεση όταν εκτελείται ο κατασκευαστής: μπορεί να εκτελέσει αμέσως έλεγχο ταυτότητας και άλλες ρυθμίσεις Redis.
Παρακολουθήστε μία υποδοχή από τη δημιουργία έως την παράδοση
Για μη πιστοποιημένη διαδρομή SOCKS5, το εργοστάσιο μπορεί να δημιουργήσει ένα java.net.Socket με ρητό μεσολαβητή Proxy.Type.SOCKS και μετά να συνδεθεί στον κεντρικό υπολογιστή και τη θύρα Redis. Αφήστε τον προορισμό άλυτο αν ο διακομιστής SOCKS πρέπει να επιλύσει το όνομα κεντρικού υπολογιστή.
Περιορίστε την προσπάθεια σύνδεσης και εφαρμόστε το προβλεπόμενο χρονικό όριο ανάγνωσης. Αν η σύνδεση αποτύχει, κλείστε αυτή την υποδοχή και αναφέρετε JedisConnectionException· η διεπαφή του εργοστασίου δεν δηλώνει ελεγχόμενη IOException.
Αν το Redis απαιτεί TLS, εγκαταστήστε και επαληθεύστε TLS πριν επιστρέψετε την υποδοχή. Δεν μπορεί να υποτεθεί ότι μια ξεχωριστή σημαία θα μετατρέψει μια αυθαίρετη υποδοχή που επιστρέφει το εργοστάσιο. Για δεξαμενή, επαναλάβετε αυτόν τον κύκλο ζωής με νέα υποδοχή σε κάθε κλήση του εργοστασίου, συμπεριλαμβανομένων των συνδέσεων αντικατάστασης.
Μια επιλογή HTTP σε καθολικό ProxySelector δεν είναι εναλλακτική υλοποίηση αυτής της εργασίας. Το Redis στέλνει RESP μέσω της υποδοχής του· δεν γίνεται έτσι HTTP ούτε διαπραγματεύεται CONNECT.