Я пытаюсь реализовать систему с двумя клиентами, один из которых отправляет сообщение, а другой должен получить Это. Рисунок ниже пояснит это более наглядно:
Итак, клиент 1 отправляет сообщение на сервер (, и это работает), сервер получает «push»-сообщение и выдает «pop»-сообщение. который должен быть получен Клиентом 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 (aka 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 (aka web.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-