Hva en Jedis SOCKS-socketfabrikk må returnere
Jedis 5.2.0 forventer en tilkoblet socket som er klar for Redis, inkludert TLS når det er nødvendig; bare valg av proxy gir ikke den forbindelsen.
JedisSocketFactory.createSocket må returnere en tilkoblet socket som er klar til å føre Redis-trafikk. I Jedis 5.2.0 leverer applikasjonen den fabrikken og sin Redis-klientkonfigurasjon her:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory implementerer redis.clients.jedis.JedisSocketFactory, og redisConfig er applikasjonens JedisClientConfig. Vær klar til å koble til når konstruktøren kjører: den kan utføre autentisering og andre Redis-innstillinger med en gang.
Følg én socket fra opprettelse til overlevering
For en uautentisert SOCKS5-rute kan fabrikken opprette en java.net.Socket med en eksplisitt Proxy.Type.SOCKS-mellommann og deretter koble til Redis-verten og -porten. La destinasjonen være uoppløst hvis SOCKS-serveren skal slå opp vertsnavnet.
Begrens tilkoblingsforsøket og bruk den tiltenkte lesetidsavbruddet. Hvis tilkoblingen mislykkes, lukk den socketen og rapporter JedisConnectionException; fabrikkgrensesnittet deklarerer ikke kontrollert IOException.
Hvis Redis krever TLS, etabler og verifiser TLS før socketen returneres. Man kan ikke anta at et eget flagg omformer en vilkårlig socket som fabrikken returnerer. For en pool gjentar du denne livssyklusen med en ny socket ved hvert fabrikkall, også erstatningsforbindelser.
Et HTTP-valg i en global ProxySelector er ikke en alternativ implementering av dette arbeidet. Redis sender RESP over socketen sin; den blir ikke dermed HTTP og forhandler ikke CONNECT.