Java WebSocket लाइब्रेरीज़: रियल-टाइम कार्यान्वयन के लिए संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java WebSocket लाइब्रेरी: रियल-टाइम एप्लिकेशन विकास के लिए संपूर्ण गाइड

WebSocket एक प्रोटोकॉल है जो एकल लंबे समय तक चलने वाले TCP कनेक्शन के माध्यम से क्लाइंट और सर्वर के बीच द्वि-दिशात्मक संचार प्रदान करता है। Java में कई परिपक्व लाइब्रेरीज़ हैं जो WebSocket के साथ काम करना सरल बनाती हैं। इस लेख में, हम मुख्य लाइब्रेरीज़, उनकी क्षमताओं की समीक्षा करेंगे और व्यावहारिक कोड उदाहरण प्रदान करेंगे।



1. Java WebSocket API (JSR 356)

Java EE / Jakarta EE में WebSocket के साथ काम करने के लिए मानक API। यह एप्लिकेशन सर्वर (WildFly, TomEE, GlassFish) का हिस्सा है और सर्वर-साइड और क्लाइंट-साइड दोनों एंडपॉइंट बनाने की अनुमति देता है।

मुख्य क्षमताएँ:

  • एनोटेशन @ServerEndpoint और @ClientEndpoint
  • टेक्स्ट और बाइनरी संदेशों के लिए समर्थन
  • सत्र और जीवनचक्र प्रबंधन
  • CDI (Contexts and Dependency Injection) के साथ एकीकरण

सर्वर एंडपॉइंट का उदाहरण:

import javax.websocket.*;import javax.websocket.server.ServerEndpoint;import java.io.IOException;

@ServerEndpoint("/chat")public class ChatEndpoint {

@OnOpen public void onOpen(Session session) { System.out.println("नया कनेक्शन: " + session.getId()); session.getUserProperties().put("username", "अतिथि"); }

@OnMessage public String onMessage(String message, Session session) { String username = (String) session.getUserProperties().get("username"); return username + ": " + message; }

@OnClose public void onClose(Session session, CloseReason reason) { System.out.println("कनेक्शन बंद: " + reason.getReasonPhrase()); }

@OnError public void onError(Session session, Throwable error) { error.printStackTrace(); }}

क्लाइंट का उदाहरण:

import javax.websocket.*;import java.net.URI;

@ClientEndpointpublic class ChatClient {

private Session session;

@OnOpen public void onOpen(Session session) { System.out.println("सर्वर से जुड़ा"); this.session = session; }

@OnMessage public void onMessage(String message) { System.out.println("प्राप्त: " + message); }

public void sendMessage(String message) throws IOException { if (session != null && session.isOpen()) { session.getBasicRemote().sendText(message); } }

public static void main(String[] args) throws Exception { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); ChatClient client = new ChatClient(); container.connectToServer(client, new URI("ws://localhost:8080/chat")); client.sendMessage("नमस्ते, दुनिया!"); Thread.sleep(1000); }}


2. Tyrus (संदर्भ कार्यान्वयन)

Tyrus — Oracle द्वारा JSR 356 का संदर्भ कार्यान्वयन। इसका उपयोग पूर्ण एप्लिकेशन सर्वर के बिना एक स्टैंडअलोन लाइब्रेरी के रूप में किया जा सकता है। यह माइक्रोसर्विसेज़ और हल्के एप्लिकेशन के लिए आदर्श है।

विशेषताएँ:

  • Grizzly, Jetty या JDK HTTP सर्वर के साथ काम करता है
  • WebSocket के बिना ब्राउज़रों के साथ संगतता के लिए SockJS समर्थन
  • अनुकूलन योग्य फ़िल्टर और इंटरसेप्टर
  • XML या Java Config के माध्यम से लचीला कॉन्फ़िगरेशन

Tyrus + Grizzly पर स्टैंडअलोन सर्वर का उदाहरण:

import org.glassfish.tyrus.server.Server;import javax.websocket.*;import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/echo")public class EchoEndpoint {

@OnMessage public String echo(String message) { return "प्रतिध्वनि: " + message; }

public static void main(String[] args) { Server server = new Server("localhost", 8025, "/ws", EchoEndpoint.class); try {

अनुशंसाएँ