JedisSocketFactory.createSocket debe devolver un socket conectado e listo para transportar tráfico de Redis. En Jedis 5.2.0, a aplicación fornece esa fábrica e a súa configuración de cliente Redis aquí:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory implementa redis.clients.jedis.JedisSocketFactory, e redisConfig é o JedisClientConfig da aplicación. Estea listo para conectar cando se execute o construtor: pode realizar a autenticación e outros axustes de Redis de inmediato.

Siga un socket desde a creación ata a entrega

Para unha ruta SOCKS5 sen autenticación, a fábrica pode crear un java.net.Socket cun intermediario Proxy.Type.SOCKS explícito e despois conectar co host e o porto de Redis. Deixe o destino sen resolver se o servidor SOCKS debe resolver o nome de host.

Limite o intento de conexión e aplique o tempo de espera de lectura previsto. Se a conexión falla, peche ese socket e informe de JedisConnectionException; a interface da fábrica non declara IOException comprobada.

Se Redis require TLS, estabeleza e verifique TLS antes de devolver o socket. Non cabe supoñer que un indicador separado transforme un socket arbitrario devolto pola fábrica. Para un conxunto, repita este ciclo de vida cun socket novo en cada chamada á fábrica, incluídas as conexións de substitución.

Unha selección HTTP nun ProxySelector global non é unha implementación alternativa deste traballo. Redis envía RESP polo seu socket; non por iso se converte en HTTP nin negocia CONNECT.

Artigos relacionados