బ్లాకింగ్, TLS కాని AMQP కనెక్షన్ కోసం Spring యొక్క RabbitConnectionFactoryBean SOCKS-అవగాహన సాకెట్ ఫ్యాక్టరీని RabbitMQ Java క్లయింట్కు అందించగలదు.

Commons Net ఇప్పటికే అందుబాటులో ఉంటే, ప్రారంభానికి ముందు ఉన్న factory bean ను కాన్ఫిగర్ చేయండి:

var socksProxy = new java.net.Proxy(
    java.net.Proxy.Type.SOCKS,
    new java.net.InetSocketAddress("proxy.example", 1080));
rabbitFactoryBean.setSocketFactory(
    new org.apache.commons.net.DefaultSocketFactory(socksProxy));

rabbitFactoryBean అనేది అప్లికేషన్ యొక్క RabbitConnectionFactoryBean. దాని broker హోస్ట్, AMQP పోర్ట్, ఖాతా మరియు Spring కనెక్షన్-నిర్వహణ సెటప్ను నిలుపుకోండి. broker గమ్యస్థానంగానే ఉంటుంది; SocketFactory SOCKS ద్వారా దానిని చేరుకునే సాకెట్లను సృష్టిస్తుంది. పబ్లిక్ మధ్యవర్తులను అనుమతించే పబ్లిక్ broker పై సున్నితం కాని పరీక్ష కోసం, SOCKS ప్రాక్సీ జాబితా అభ్యర్థులను అందిస్తుంది; runtime మద్దతు ఇచ్చే SOCKS సంస్కరణతో సరిపోల్చి, వాస్తవ broker హోస్ట్ మరియు పోర్ట్కు యాక్సెస్ను నిర్ధారించండి.

Commons Net యొక్క ఫ్యాక్టరీ ఇచ్చిన Proxy ఉపయోగించి కనెక్ట్ కాని java.net.Socket ను సృష్టిస్తుంది. ఆ తర్వాత RabbitMQ యొక్క బ్లాకింగ్ కనెక్షన్ కోడ్ ఆ సాకెట్ను దాని సాధారణ కనెక్షన్ మార్గం ద్వారా కనెక్ట్ చేస్తుంది. కేవలం HTTP_PROXY ఎగుమతి చేయడం ఈ AMQP సాకెట్ ఫ్యాక్టరీని అందించదు.

SocketFactory హుక్ బ్లాకింగ్ I/O కి వర్తిస్తుందని RabbitMQ డాక్యుమెంట్ చేస్తుంది. NIO లేదా మరో రవాణా కోసం కాన్ఫిగర్ చేసిన క్లయింట్కు ఆ రవాణా మద్దతు ఇచ్చే హుక్ అవసరం. AMQPS కోసం, సరిపోయే TLS సాకెట్ ఫ్యాక్టరీ మరియు గమ్యస్థాన ధృవీకరణను నిలుపుకోండి; పైనున్న సాధారణ ఫ్యాక్టరీతో దానిని భర్తీ చేయడం పూర్తి TLS కాన్ఫిగరేషన్ కాదు.

సంబంధిత వ్యాసాలు