Bir Jedis SOCKS soket fabrikası ne döndürmeli
Jedis 5.2.0, Redis için hazır, bağlı bir soket bekler; gerektiğinde TLS dahil. Yalnızca proxy seçmek bu bağlantıyı sağlamaz.
JedisSocketFactory.createSocket Redis trafiğini taşımaya hazır, bağlı bir soket döndürmelidir. Jedis 5.2.0 içinde uygulama bu fabrikayı ve Redis istemci yapılandırmasını burada verir:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory redis.clients.jedis.JedisSocketFactory arayüzünü uygular ve redisConfig uygulamanın JedisClientConfig nesnesidir. Kurucu çalışırken bağlanmaya hazır olun: kimlik doğrulamayı ve diğer Redis ayarlarını hemen yapabilir.
Bir soketi oluşturmadan teslimata kadar izleyin
Kimlik doğrulaması olmayan bir SOCKS5 rotası için fabrika, java.net.Socket açık bir Proxy.Type.SOCKS aracısıyla oluşturabilir ve ardından Redis ana bilgisayarına ve bağlantı noktasına bağlanabilir. Hedefi çözülmemiş bırakın SOCKS sunucusunun ana bilgisayar adını çözmesi gerekiyorsa.
Bağlantı denemesini sınırlayın ve amaçlanan okuma zaman aşımını uygulayın. Bağlantı başarısız olursa o soketi kapatın ve JedisConnectionException bildirin; fabrika arayüzü denetlenen IOException bildirmez.
Redis TLS gerektiriyorsa, soketi geri vermeden önce TLS kurun ve doğrulayın. Ayrı bir bayrağın fabrikanın döndürdüğü herhangi bir soketi dönüştüreceği varsayılamaz. Bir havuz için, değiştirme bağlantıları dahil her fabrika çağrısında yeni bir soketle bu yaşam döngüsünü yineleyin.
Genel bir ProxySelector içindeki HTTP seçimi bu işin alternatif bir uygulaması değildir. Redis RESP’yi kendi soketi üzerinden gönderir; bu nedenle HTTP olmaz ve CONNECT pazarlığı yapmaz.