Што треба да врати 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.