2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Socket.IO
इदं WebSocket इत्यस्य आधारेण वास्तविकसमये, द्विपक्षीयं, घटना-आधारितं च संचारपुस्तकालयम् अस्ति । मूलतः Node.js कृते डिजाइनं कृतम् आसीत्, परन्तु अधुना पायथन् सहितं बहुषु भाषासु कार्यान्वयनम् अस्ति । पायथन् इत्यत्र .python-socketio
एकं लोकप्रियं पुस्तकालयं यत् भवन्तं Socket.IO क्लायन्ट्-सर्वर्-इत्येतत् सुलभतया कार्यान्वितुं शक्नोति । इदं पुस्तकालयं विशेषतया जाल-अनुप्रयोगानाम् निर्माणार्थं उपयोगी भवति येषु वास्तविक-समय-दत्तांश-आदान-प्रदानस्य आवश्यकता भवति, यथा गपशप-अनुप्रयोगाः, वास्तविक-समय-सूचना-प्रणाल्याः, क्रीडाः इत्यादयः ।
भवन्तः pip मार्गेण संस्थापयितुं शक्नुवन्तिpython-socketio
:
pip install python-socketio
यदि भवान् अपि जालसर्वरं निर्मातुम् इच्छति तथा च इदं Socket.IO सर्वररूपेण द्विगुणं कर्तुम् इच्छति तर्हि भवान् संस्थापनमपि कर्तुं शक्नोतिFlask-SocketIO
(एकः Flask विस्तारः यः Flask तथा Socket.IO इत्येतयोः एकीकरणं करोति):
pip install Flask-SocketIO
निम्नलिखितम् सरलम् अस्तिFlask-SocketIO
सर्वर उदाहरणं, यत् Flask framework इत्यस्य उपयोगं करोति तथा च Socket.IO इत्यस्य एकीकरणं करोति:
- from flask import Flask, render_template
- from flask_socketio import SocketIO, send
-
- app = Flask(__name__)
- app.config['SECRET_KEY'] = 'secret!'
- socketio = SocketIO(app)
-
- @app.route('/')
- def index():
- return render_template('index.html')
-
- @socketio.on('message')
- def handleMessage(msg):
- print('Message: ' + msg)
- send(msg, broadcast=True)
-
- if __name__ == '__main__':
- socketio.run(app)
अस्मिन् उदाहरणे सर्वरः शृणोति/
HTML पृष्ठं मार्गं कृत्वा रेण्डरं कुर्वन्तु (भवद्भिः स्वयमेव एतत् पृष्ठं निर्मातव्यं तथा च Socket.IO क्लायन्ट् पुस्तकालयस्य परिचयः करणीयः) ।सर्वरः आह्वानं अपि शृणोतिmessage
event, यदा एषा घटना प्राप्ता भवति तदा एतत् सन्देशसामग्रीम् मुद्रयति, सन्देशं च सर्वेभ्यः सम्बद्धेभ्यः क्लायन्ट्-भ्यः पुनः प्रसारयति ।
क्लायन्ट् पक्षे (प्रायः ब्राउजर् मध्ये JavaScript), भवद्भिः Socket.IO क्लायन्ट् पुस्तकालयं आयात्य सर्वरेण सह संयोजनं स्थापयितुं आवश्यकम् । अत्र सरलं क्लायन्ट् उदाहरणम् अस्ति :
- <!DOCTYPE html>
- <html>
- <head>
- <title>Socket.IO chat</title>
- <script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.0/socket.io.js"></script>
- <script>
- var socket = io('http://localhost:5000');
- socket.on('connect', function() {
- console.log('Connected to the server!');
- });
-
- socket.on('message', function(msg) {
- console.log('Received message: ' + msg);
- });
-
- function sendMessage() {
- var input = document.getElementById('messageInput');
- socket.emit('message', input.value);
- input.value = '';
- }
- </script>
- </head>
- <body>
- <input type="text" id="messageInput" autocomplete="off" /><button onclick="sendMessage()">Send</button>
- </body>
- </html>
अस्मिन् उदाहरणे क्लायन्ट् सर्वरेण सह सम्बद्धः भवति, शृण्वन्message
घटनां परिभाषयति च कsendMessage
सर्वरं प्रति सन्देशान् प्रेषयितुं कार्यं ।
python-socketio
तथाFlask-SocketIO
वास्तविकसमयजाल-अनुप्रयोगानाम् निर्माणार्थं शक्तिशालिनः साधनानि प्रदाति । WebSockets तथा इवेण्ट्-ड्राइवन् प्रोग्रामिंग मॉडल् इत्यस्य लाभं गृहीत्वा, भवान् जटिल-वास्तविक-समय-अन्तरक्रियाशील-विशेषताः सहजतया कार्यान्वितुं शक्नोति ।
भविष्ये अपि प्रासंगिकसामग्रीम् अद्यतनं साझां च करिष्यामः।ध्यानं दातुं स्मर्यताम् !