У меня есть очень простой код, который использует socket.io
Клиент
var socket = io();
// Do some stuff...
socket.emit('hello', 'please like me');
// Wait for a response
socket.on('hello back!', function(msg) {
console.log('Yay, he replied:', msg);
});
Сервер
var app = require('express');
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket) {
console.log('a user connected');
socket.on('disconnect', function() {
console.log('user disconnected');
});
socket.on('hello', function() {
// Code to decide wether or not I like the client
// ...
// I do like the client!
socket.emit('hello back!', 'how are you');
console.log('I said hello back!');
});
});
Надеюсь, вам удалось получить картину. В идеале это должно произойти:
- Клиент подключается
- Через некоторое время клиент испускает
hello
- Сервер видит это, испускает
hello back!
- Клиент замечает событие
hello back!
- Все счастливы!
Но, к сожалению, это не так. Вместо этого шаги 1-3 работают отлично. Но когда вы достигнете шагов 4 и 5, все начинает разваливаться. Клиент никогда ничего не регистрирует после отправки события hello back!
.
Это , а не мой полный код, я подумал, что вам будет легче его понять. Вполне возможно, что я где-то допустил какую-то глупую ошибку, возможно, не включив ее в этот код. Но, пожалуйста, дайте мне знать, если с тем, что я делаю, что-то в корне не так.
Приветствия