मैं दो क्लाइंट के साथ एक सिस्टम को लागू करने की कोशिश कर रहा हूं उनमें से एक संदेश भेजता है और दूसरा इसे प्राप्त करेगा। नीचे आकृति एक और अधिक बेहतर तरीके से यह समझा जाएगा:socket.io क्लाइंट सर्वर से संदेश प्राप्त नहीं कर रहा है
तो, ग्राहक 1 सर्वर से संदेश भेजने के लिए (और यह काम करता है), सर्वर एक "पुश" संदेश प्राप्त करता है और एक का उत्सर्जन करता है "पॉप" संदेश जिसे क्लाइंट 2 द्वारा उठाया जाना चाहिए। यहां समस्या यह है कि क्लाइंट 2 को कभी भी "पॉप" संदेश प्राप्त नहीं होता है। :(
यहाँ उन सभी के लिए कोड है।
SERVER.JS
var app = require('express').createServer()
, io = require('socket.io').listen(app);
app.listen(999);
app.get('/webclient', function (req, res) {
res.sendfile(__dirname + '/web.html');
});
app.get('/mobile', function (req, res) {
res.sendfile(__dirname + '/mobile.html');
});
io.sockets.on('connection', function (socket) {
// socket.emit('pop', { hello: 'world' });
socket.on('push', function (data) {
console.log('push received, emitting a pop');
socket.emit('pop', { hello: 'world' });
});
});
ग्राहक 1 (उर्फ mobile.html)
<html>
<head>
<title>
Mobile
</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js" type="text/javascript"></script>
<script>
var socket = io.connect('http://localhost:999');
</script>
</head>
<body>
<input type="button" name="act" id="push" value="message" />
<script type="text/javascript" charset="utf-8">
window.addEvent('domready', function() {
$('push').addEvent('click', function() {
socket.emit('push', { hello: 'world' });
});
});
</script>
</body>
</html>
ग्राहक 2 (उर्फ वेब.html)
<script src = "/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:999');
socket.on('pop', function (data) {
console.log(data);
});
</script>
मैं सिर्फ कारण है कि ग्राहक 2 "पॉप" संदेश प्राप्त नहीं होता है समझ में नहीं आ सकते हैं, मैं काफी socket.io करने और सामान्य रूप में Node.js मेरे लिए बहुत कुछ यांत्रिकी अभी भी थोड़ा अस्पष्ट हैं नई कर रहा हूँ , इसलिए मैं अपने नोबनेस के लिए पहले से माफी माँगता हूं। :)
चियर्स
-k-
मुझे सॉकेट.io के साथ अनुभव नहीं हुआ है, लेकिन अगर मुझे गलत नहीं है तो 'सॉकेट' उसी सॉकेट को संदर्भित करेगा जिसे आपने संदेश प्राप्त किया था। क्या आप इसके बजाय 'io.sockets.emit' आज़मा सकते हैं? – pimvdb
एक आकर्षण की तरह काम करता है!यदि आप एक उत्तर देना चाहते हैं तो मैं इसे सही के रूप में चिह्नित कर सकता हूं और आपको एक +1 प्राप्त कर सकता हूं :) – holographix
+1 एक दिलचस्प प्रश्न के लिए अच्छी तरह से पूछा गया और स्वरूपित – beny23