2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
WebSocket एकः संजालसञ्चारप्रोटोकॉलः अस्ति यः एकस्मिन् दीर्घकालीननिरतः TCP संयोजने पूर्ण-द्वयात्मकसञ्चारस्य कृते एकं चैनलं प्रदाति ।
WebSocket क्लायन्ट्-सर्वरयोः मध्ये द्विदिशा-दत्तांश-आदान-प्रदानस्य अनुमतिं ददाति, यस्य अर्थः अस्ति यत् सर्वरः क्लायन्ट्-अनुरोधस्य प्रतीक्षां विना सक्रियरूपेण क्लायन्ट्-पर्यन्तं दत्तांशं धक्कायितुं शक्नोति WebSocket संयोजनस्य स्थापनायाः अनन्तरं क्लायन्ट् सर्वरः च कदापि दत्तांशं प्रेषयितुं शक्नुवन्ति, येन वास्तविकसमये अन्तरक्रियाशीलता च महती उन्नतिः भवति ।
अग्रभागस्य उपयोगं कुर्वन् प्रत्यक्षतया उत्तीर्णं कर्तुं शक्नुवन्तिnew WebSocket
प्रयोगं कर्तुं, परन्तु देशीयस्य प्रयोगःWebSocket
प्रदत्तानि कार्याणि तुल्यकालिकरूपेण सरलाः सन्ति, भवद्भिः स्वयमेव काश्चन समस्याः निबद्धव्याः ।एतत् उपयुज्य उपलभ्यतेsocket.io-client
संचालनं कर्तुं
socket.io-client
देशी WebSocket API इत्यनेन सह तुलने, एतत् समृद्धतरविशेषताः व्यापकं च संगततां च प्रदाति, येन बहुषु सन्दर्भेषु इदं उत्तमं विकल्पं भवति ।निम्नलिखितम् अस्तिsocket.io-client
केचन मुख्याः लाभाः : १.
संगतता:
socket.io-client
WebSocket इत्यस्य समर्थनं न कुर्वन्ति ब्राउजर्-मध्ये अन्येषु संचरण-विधिषु स्वयमेव पुनः पतन्ति, यथा long-polling, Flash Sockets इत्यादयः, येन सुनिश्चितं भवति यत् ते प्रायः सर्वेषु आधुनिक-ब्राउजर्-मध्ये तथा च केषुचित् प्राचीन-ब्राउजर्-मध्ये कार्यं कुर्वन्ति
स्वयमेव पुनः संयोजयन्तु:
यदा जालसंयोजनं बाधितं भवति अथवा सर्वरः पुनः आरभते तदाsocket.io-client
पुनः संयोजनस्य प्रयासः स्वयमेव कर्तुं शक्यते, यदा तु देशी WebSocket इत्यस्य पुनर्संयोजनतर्कस्य हस्तचलितनियन्त्रणस्य आवश्यकता भवति ।
त्रुटिनियन्त्रणम्:
socket.io-client
संजालदोषाणां उत्तमं प्रतिवेदनं निबन्धनं च कर्तुं अधिकं सम्पूर्णं त्रुटिनियन्त्रणतन्त्रं प्रदाति ।
socket.io-client
क्लायन्ट् (प्रायः ब्राउजर् अथवा Node.js अनुप्रयोगः) इत्यत्र Socket.IO सर्वरेण सह संवादं कर्तुं पुस्तकालयः अस्ति । एतत् एकं शक्तिशालीं एपिआइ प्रदाति यत् वास्तविकसमये द्विपक्षीयसञ्चारं नियन्त्रयितुं शक्नोति, यत्र स्वचालितपुनःसंयोजनं, हृदयस्पन्दनपरिचयः, त्रुटिनियन्त्रणम् इत्यादीनि कार्याणि सन्ति ।
प्रथमं भवता संस्थापनीयम् socket.io-client
. स्वस्य परियोजनानिर्देशिकायां निम्नलिखितम् आदेशं चालयन्तु ।
npm install socket.io-client
स्वस्य JavaScript सञ्चिकायां, परिचयार्थं ES6 module import विधिं उपयोक्तुं शक्नुवन्ति socket.io-client
:
import { io } from 'socket.io-client';
अथवा, यदि भवान् CommonJS मॉड्यूल् उपयुज्यते तर्हि एतत् कर्तुं शक्नोति:
const io = require('socket.io-client');
Socket instance इत्यस्य निर्माणार्थं प्रायः सर्वरस्य URL मध्ये पारीकरणं आवश्यकं भवति । एषः सापेक्षमार्गः (एकस्यैव डोमेननामस्य कृते) अथवा पूर्णः URL (क्रॉस्-डोमेन-सम्बद्धानां कृते) भवितुम् अर्हति । उदाहरणतया:
const socket = io('http://localhost:3000');
const socket = io('https://yourdomain.com');
const socket = io("wss://server-domain.com");
एकवारं Socket उदाहरणं निर्माय भवन्तः विविधानि घटनानि श्रोतुं शक्नुवन्ति, यथा संयोजनस्थितिपरिवर्तनं, सन्देशप्राप्तिः इत्यादयः ।
socket.on('connect', () => {
console.log('Connected to server');
});
socket.on('disconnect', (reason) => {
console.log('Disconnected from server', reason);
});
socket.on('message', (data) => {
console.log('Received message from server', data);
});
भवन्तः उपयोक्तुं शक्नुवन्ति emit
विधिः सर्वरं प्रति घटनाः, दत्तांशं च प्रेषयन्ति ।
socket.emit('chat message', { message: 'Hello from the client!' });
यदा संयोजनस्य आवश्यकता नास्ति तदा Socket संयोजनं स्पष्टतया बन्दं कर्तुं शक्यते:
socket.disconnect();
अत्र ग्राहकपक्षे कथं तस्य उपयोगः करणीयः इति दर्शयति सम्पूर्णं उदाहरणम् socket.io-client
:
import { io } from 'socket.io-client';
// 创建 Socket 实例
const socket = io('http://localhost:3000');
// 监听连接事件
socket.on('connect', () => {
console.log('Connected to server');
});
// 监听接收消息事件
socket.on('message', (data) => {
console.log('Received message from server', data);
});
// 发送消息到服务器
socket.emit('chat message', { message: 'Hello from the client!' });
// 当组件销毁时,关闭 Socket 连接
// 如果你是在 Vue 或 React 的生命周期钩子中使用,确保在这里调用 disconnect
// 或者使用适当的事件来触发断开连接
// socket.disconnect();