Apa yang perlu dikembalikan oleh kilang soket SOCKS Jedis
Jedis 5.2.0 menjangka soket bersambung yang sedia untuk Redis, termasuk TLS apabila perlu; pemilihan proksi sahaja tidak menyediakan sambungan itu.
JedisSocketFactory.createSocket mesti mengembalikan soket bersambung yang sedia membawa trafik Redis. Dalam Jedis 5.2.0, aplikasi membekalkan kilang itu dan konfigurasi klien Redisnya di sini:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory melaksanakan redis.clients.jedis.JedisSocketFactory, dan redisConfig ialah JedisClientConfig aplikasi. Bersedia untuk menyambung apabila pembina berjalan: ia boleh melakukan pengesahan dan tetapan Redis lain serta-merta.
Jejaki satu soket dari penciptaan hingga penyerahan
Untuk laluan SOCKS5 tanpa pengesahan, kilang boleh mencipta java.net.Socket dengan perantara Proxy.Type.SOCKS eksplisit, kemudian menyambung ke hos dan port Redis. Biarkan destinasi tidak diselesaikan jika pelayan SOCKS perlu menyelesaikan nama hos.
Hadkan percubaan sambungan dan gunakan tamat masa baca yang dimaksudkan. Jika sambungan gagal, tutup soket itu dan laporkan JedisConnectionException; antara muka kilang tidak mengisytiharkan IOException yang diperiksa.
Jika Redis memerlukan TLS, bina dan sahkan TLS sebelum mengembalikan soket. Bendera berasingan tidak boleh diandaikan mengubah mana-mana soket yang dikembalikan oleh kilang. Untuk kumpulan, ulangi kitaran hayat ini dengan soket baharu pada setiap panggilan kilang, termasuk sambungan pengganti.
Pemilihan HTTP dalam ProxySelector global bukan pelaksanaan alternatif kerja ini. Redis menghantar RESP melalui soketnya; ia tidak menjadi HTTP kerana itu atau berunding CONNECT.