Kiwanda cha soketi za SOCKS cha Jedis kinapaswa kurudisha nini
Jedis 5.2.0 kinatarajia soketi iliyounganishwa na tayari kwa Redis, ikiwa ni pamoja na TLS inapohitajika; kuchagua proksi pekee hakupi muunganisho huo.
JedisSocketFactory.createSocket kinapaswa kurudisha soketi iliyounganishwa na tayari kubeba trafiki ya Redis. Katika Jedis 5.2.0, programu hutoa kiwanda hicho na usanidi wake wa mteja wa Redis hapa:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory inatekeleza redis.clients.jedis.JedisSocketFactory, na redisConfig ni JedisClientConfig ya programu. Kuwa tayari kuunganisha wakati kijenzi kinaendesha: kinaweza kufanya uthibitishaji na mipangilio mingine ya Redis mara moja.
Fuatilia soketi moja kutoka kuundwa hadi kukabidhiwa
Kwa njia ya SOCKS5 isiyo na uthibitishaji, kiwanda kinaweza kuunda java.net.Socket na mpatanishi Proxy.Type.SOCKS wazi, kisha kuunganisha na mwenyeji na bandari ya Redis. Acha lengwa bila kutatuliwa ikiwa seva ya SOCKS inapaswa kutatua jina la mwenyeji.
Weka kikomo cha jaribio la muunganisho na tumia muda wa kusoma uliokusudiwa. Ikiwa muunganisho unashindikana, funga soketi hiyo na ripoti JedisConnectionException; kiolesura cha kiwanda hakitangazi IOException iliyokaguliwa.
Ikiwa Redis inahitaji TLS, sakinisha na uthibitishe TLS kabla ya kurudisha soketi. Haiwezi kudhaniwa kuwa bendera tofauti itabadilisha soketi yoyote ile inayorudishwa na kiwanda. Kwa bwawa, rudia mzunguko huu wa maisha kwa soketi mpya katika kila simu ya kiwanda, ikiwa ni pamoja na miunganisho mbadala.
Uchaguzi wa HTTP katika ProxySelector ya kimataifa si utekelezaji mbadala wa kazi hii. Redis hutuma RESP kupitia soketi yake; haifanyiki kuwa HTTP kwa hilo wala haijadili CONNECT.