WebSocket लाइब्रेरी Java: Tyrus — JSR 356 का संदर्भ कार्यान्वयन
आधुनिक वेब डेवलपमेंट में, वास्तविक समय में द्विदिश संचार की आवश्यकता एक मानक बन गई है। चैट एप्लिकेशन, ऑनलाइन गेम, ट्रेडिंग टर्मिनल और सूचना प्रणालियाँ — ये सभी चाहते हैं कि सर्वर बिना लगातार HTTP अनुरोधों के क्लाइंट को डेटा भेजने की पहल कर सके। Java पारिस्थितिकी तंत्र के लिए, वास्तविक मानक JSR 356 (Java API for WebSocket) विनिर्देश है, और इसका संदर्भ कार्यान्वयन Tyrus लाइब्रेरी है।
pythonlib.ru पेज पर, हम अक्सर real-time संचार के लिए उपकरणों की समीक्षा करते हैं। आज हम Tyrus पर विस्तार से चर्चा करेंगे — Java में WebSocket के साथ काम करने के लिए एक शक्तिशाली और लचीली लाइब्रेरी, जो आपको अपने प्रोजेक्ट्स में द्विदिश डेटा आदान-प्रदान को आसानी से शामिल करने की अनुमति देती है।
Tyrus क्या है और इसकी आवश्यकता क्यों है?
Tyrus — Eclipse Foundation के तत्वावधान में विकसित JSR 356 विनिर्देश का एक ओपन-सोर्स कार्यान्वयन (reference implementation) है। यह Java पर सर्वर और क्लाइंट दोनों WebSocket एप्लिकेशन बनाने के लिए API का एक पूरा सेट प्रदान करता है। Tyrus के मुख्य लाभ:
- JSR 356 मानक का पूर्ण अनुपालन — Tyrus का उपयोग करके लिखा गया कोड आसानी से अन्य कार्यान्वयनों (जैसे Apache Tomcat, Jetty) पर पोर्ट किया जा सकता है।
- एनोटेशन के लिए समर्थन — न्यूनतम दृष्टिकोण: POJO में
@ServerEndpointया@ClientEndpointएनोटेशन जोड़ना पर्याप्त है। - लचीलापन — सर्वलेट कंटेनर (Tomcat, GlassFish) और standalone मोड (एम्बेडेड Grizzly सर्वर) दोनों में काम करता है।
- सुरक्षा — मानक Java SSL सॉकेट के माध्यम से WSS (WebSocket Secure) के लिए समर्थन।
Tyrus की स्थापना और कनेक्शन
Tyrus के साथ काम करने के लिए, आपको pom.xml (Maven) में कुछ निर्भरताएँ जोड़नी होंगी। बुनियादी कॉन्फ़िगरेशन में लाइब्रेरी का मूल और परिवहन स्तर (standalone मोड के लिए Grizzly) शामिल है:
<!-- Tyrus की मुख्य निर्भरता --><dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-server</artifactId> <version>1.19</version></dependency>
<!-- standalone मोड के लिए एम्बेडेड Grizzly सर्वर --><dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-container-grizzly-server</artifactId> <version>1.19</version></dependency>
<!-- क्लाइंट भाग (यदि अन्य सर्वरों से कनेक्ट करने की आवश्यकता हो) --><dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-client</artifactId> <version>1.19</version></dependency>Gradle (build.gradle) के लिए:
implementation 'org.glassfish.tyrus:tyrus-server:1.19'implementation 'org.glassfish.tyrus:tyrus-container-grizzly-server:1.19'implementation 'org.glassfish.tyrus:tyrus-client:1.19'Tyrus पर WebSocket सर्वर बनाना
सर्वर भाग — यह @ServerEndpoint एनोटेशन वाला एक सामान्य Java क्लास है। Tyrus स्वचालित रूप से कनेक्शन के जीवनचक्र का प्रबंधन करता है।
import javax.websocket.*;import javax.websocket.server.ServerEndpoint;import java.io.IOException;import java.util.Set;import java.util.concurrent.CopyOnWriteArraySet;
@ServerEndpoint("/chat")public class ChatEndpoint {
// सभी सक्रिय सत्रों को संग्रहीत करें private static final Set<Session> sessions = new CopyOnWriteArraySet<>();
@OnOpen public void onOpen(Session session) { sessions.add(session); System.out.println("नया कनेक्शन: " + session.getId()); broadcast("उपयोगकर्ता " + session.getId() + " चैट में शामिल हुआ।"); }
@OnMessage public void