JedisSocketFactory.createSocket deve restituire un socket connesso e pronto a trasportare il traffico Redis. In Jedis 5.2.0 l’applicazione fornisce quella factory e la propria configurazione del client Redis qui:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory implementa redis.clients.jedis.JedisSocketFactory, e redisConfig è il JedisClientConfig dell’applicazione. Siate pronti a connettervi quando il costruttore viene eseguito: può eseguire subito l’autenticazione e altre impostazioni Redis.

Seguire un socket dalla creazione alla consegna

Per una rotta SOCKS5 senza autenticazione, la factory può creare un java.net.Socket con un intermediario Proxy.Type.SOCKS esplicito, quindi connettersi all’host e alla porta Redis. Lasciate la destinazione non risolta se il server SOCKS deve risolvere il nome host.

Limitate il tentativo di connessione e applicate il timeout di lettura previsto. Se la connessione fallisce, chiudete quel socket e segnalate JedisConnectionException; l’interfaccia della factory non dichiara IOException verificata.

Se Redis richiede TLS, stabilite e verificate TLS prima di restituire il socket. Non si può presumere che un flag separato trasformi un socket arbitrario restituito dalla factory. Per un pool, ripetete questo ciclo di vita con un socket nuovo a ogni chiamata della factory, comprese le connessioni sostitutive.

Una selezione HTTP in un ProxySelector globale non è un’implementazione alternativa di questo lavoro. Redis invia RESP sul proprio socket; non diventa per questo HTTP né negozia CONNECT.

Articoli correlati