Java में WebSocket: Java-WebSocket लाइब्रेरी
\n\nआधुनिक वेब डेवलपमेंट में रीयल-टाइम द्विदिश संचार की आवश्यकता तेजी से बढ़ रही है। चैट एप्लिकेशन, ऑनलाइन गेम, शेयर बाजार के कोटेशन, सूचनाएं - ये सब क्लाइंट और सर्वर के बीच तत्काल डेटा ट्रांसफर की मांग करते हैं। Java के लिए WebSocket प्रोटोकॉल के सबसे लोकप्रिय और विश्वसनीय कार्यान्वयनों में से एक Java-WebSocket लाइब्रेरी है (जिसे nv-websocket-client के नाम से भी जाना जाता है)।
इस लेख में हम विस्तार से समझेंगे कि सर्वर और क्लाइंट एप्लिकेशन बनाने के लिए Java-WebSocket का उपयोग कैसे करें, कोड उदाहरण देंगे और सर्वोत्तम प्रथाओं पर चर्चा करेंगे।
\n\nJava-WebSocket क्या है?
\n\nJava-WebSocket एक हल्की, शक्तिशाली ओपन-सोर्स लाइब्रेरी है जो WebSocket प्रोटोकॉल (RFC 6455) को लागू करती है। यह Java डेवलपर्स को प्रोटोकॉल के निचले स्तर के विवरणों में जाए बिना आसानी से WebSocket सर्वर और WebSocket क्लाइंट बनाने की अनुमति देती है।
\n\nलाइब्रेरी की मुख्य विशेषताएं:
\n- \n
- WebSocket के सर्वर और क्लाइंट पक्षों का पूर्ण समर्थन। \n
- SSL/TLS के माध्यम से WSS (WebSocket Secure) का समर्थन। \n
- कनेक्शन टूटने पर स्वचालित पुनः कनेक्शन। \n
- खंडित संदेशों का प्रसंस्करण। \n
- कस्टम एक्सटेंशन का समर्थन। \n
- इवेंट-आधारित सरल API (onOpen, onMessage, onClose, onError)। \n
इंस्टॉलेशन और कनेक्शन
\n\nलाइब्रेरी का उपयोग करने के लिए अपने pom.xml (Maven) में निर्भरता जोड़ें:
<dependency>\n <groupId>org.java-websocket</groupId>\n <artifactId>Java-WebSocket</artifactId>\n <version>1.5.4</version>\n</dependency>\n\nयदि आप Gradle का उपयोग कर रहे हैं:
\n\nimplementation 'org.java-websocket:Java-WebSocket:1.5.4'\n\nWebSocket सर्वर बनाना
\n\nएक सरल WebSocket सर्वर का उदाहरण देखें जो संदेश प्राप्त करता है और उन्हें सभी जुड़े क्लाइंट्स को वापस भेजता है (इको सर्वर):
\n\nimport org.java_websocket.WebSocket;\nimport org.java_websocket.handshake.ClientHandshake;\nimport org.java_websocket.server.WebSocketServer;\nimport java.net.InetSocketAddress;\nimport java.util.Set;\n\npublic class EchoServer extends WebSocketServer {\n\n public EchoServer(int port) {\n super(new InetSocketAddress(port));\n }\n\n @Override\n public void onOpen(WebSocket conn, ClientHandshake handshake) {\n System.out.println("नया कनेक्शन: " + conn.getRemoteSocketAddress());\n }\n\n @Override\n public void onClose(WebSocket conn, int code, String reason, boolean remote) {\n System.out.println("डिस्कनेक्ट: " + conn.getRemoteSocketAddress() + " (" + reason + ")");\n }\n\n @Override\n public void onMessage(WebSocket conn, String message) {\n System.out.println("संदेश प्राप्त हुआ: " + message);\n // सभी क्लाइंट्स को संदेश वापस भेजें\n Set<WebSocket> connections = getConnections();\n for (WebSocket client : connections) {\n client.send("इको: " + message);\n }\n }\n\n @Override\n public void onError(WebSocket conn, Exception ex) {\n System.err.println("त्रुटि: " + ex.getMessage());\n if (conn != null) {\n conn.close();\n }\n }\n\n @Override\n public void onStart() {\n System.out.println("सर्वर पोर्ट " + getPort() + " पर शुरू हुआ");\n }\n\n public static void main(String[] args) {\n int port = 8887;\n EchoServer server = new EchoServer(port);\n server.start();\n }\n}\n\nयह सर्वर पोर्ट 8887 पर चलता है और किसी भी संदेश को प्राप्त करने पर उसे "इको:" उपसर्ग के साथ सभी जुड़े क्लाइंट्स को वापस भेजता है।
\n\nWebSocket क्लाइंट बनाना
\n\nअब एक क्लाइंट लिखते हैं जो हमारे सर्वर से जुड़ता है