ໂຮງງານ socket SOCKS ຂອງ Jedis ຕ້ອງສົ່ງຄືນຫຍັງ
Jedis 5.2.0 ຄາດຫວັງ socket ທີ່ເຊື່ອມຕໍ່ແລ້ວ ແລະ ພ້ອມສຳລັບ Redis, ລວມທັງ TLS ເມື່ອຈຳເປັນ; ການເລືອກ proxy ຢ່າງດຽວບໍ່ສະໜອງການເຊື່ອມຕໍ່ນັ້ນ.
JedisSocketFactory.createSocket ຕ້ອງສົ່ງຄືນ socket ທີ່ເຊື່ອມຕໍ່ແລ້ວ ແລະ ພ້ອມຂົນສົ່ງການຈະລາຈອນ Redis. ໃນ Jedis 5.2.0 ແອັບຯສະໜອງໂຮງງານນັ້ນ ແລະ ການຕັ້ງຄ່າ Redis client ຂອງຕົນຢູ່ນີ້:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory ຈັດຕັ້ງ redis.clients.jedis.JedisSocketFactory, ແລະ redisConfig ແມ່ນ JedisClientConfig ຂອງແອັບຯ. ກຽມພ້ອມເຊື່ອມຕໍ່ເມື່ອ constructor ເຮັດວຽກ: ມັນອາດເຮັດການພິສູດຕົວຕົນ ແລະ ການຕັ້ງຄ່າ Redis ອື່ນໆໄດ້ທັນທີ.
ຕິດຕາມ socket ໜຶ່ງ ຈາກການສ້າງຈົນເຖິງການສົ່ງມອບ
ສຳລັບເສັ້ນທາງ SOCKS5 ທີ່ບໍ່ມີການພິສູດຕົວຕົນ, ໂຮງງານສາມາດສ້າງ java.net.Socket ດ້ວຍຕົວກາງ Proxy.Type.SOCKS ຢ່າງຊັດເຈນ ແລ້ວເຊື່ອມຕໍ່ກັບ host ແລະ port ຂອງ Redis. ປະໃຫ້ປາຍທາງຍັງບໍ່ໄດ້ແກ້ ຖ້າເຊີບເວີ SOCKS ຕ້ອງແກ້ຊື່ host.
ຈຳກັດຄວາມພະຍາຍາມເຊື່ອມຕໍ່ ແລະ ໃຊ້ເວລາອ່ານທີ່ຕັ້ງໄວ້. ຖ້າການເຊື່ອມຕໍ່ລົ້ມເຫຼວ, ປິດ socket ນັ້ນ ແລະ ລາຍງານ JedisConnectionException; ອິນເຕີເຟສຂອງໂຮງງານບໍ່ປະກາດ IOException ທີ່ກວດແລ້ວ.
ຖ້າ Redis ຕ້ອງການ TLS, ສ້າງ ແລະ ກວດສອບ TLS ກ່ອນສົ່ງ socket ຄືນ. ບໍ່ສາມາດສົມມຸດວ່າ flag ແຍກຈະປ່ຽນ socket ໃດໆທີ່ໂຮງງານສົ່ງຄືນ. ສຳລັບ pool, ເຮັດຊ້ຳວົງຈອນຊີວິດນີ້ດ້ວຍ socket ໃໝ່ໃນທຸກການເອີ້ນໂຮງງານ, ລວມທັງການເຊື່ອມຕໍ່ທົດແທນ.
ການເລືອກ HTTP ໃນ ProxySelector ທົ່ວໂລກບໍ່ແມ່ນການຈັດຕັ້ງທາງເລືອກຂອງວຽກນີ້. Redis ສົ່ງ RESP ຜ່ານ socket ຂອງມັນ; ມັນບໍ່ກາຍເປັນ HTTP ຫຼືເຈລະຈາ CONNECT ຍ້ອນສິ່ງນັ້ນ.