socket.io - .on не работает на стороне клиента - PullRequest
0 голосов
/ 31 октября 2018

У меня есть очень простой код, который использует 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!');
    });
});

Надеюсь, вам удалось получить картину. В идеале это должно произойти:

  1. Клиент подключается
  2. Через некоторое время клиент испускает hello
  3. Сервер видит это, испускает hello back!
  4. Клиент замечает событие hello back!
  5. Все счастливы!

Но, к сожалению, это не так. Вместо этого шаги 1-3 работают отлично. Но когда вы достигнете шагов 4 и 5, все начинает разваливаться. Клиент никогда ничего не регистрирует после отправки события hello back!.

Это , а не мой полный код, я подумал, что вам будет легче его понять. Вполне возможно, что я где-то допустил какую-то глупую ошибку, возможно, не включив ее в этот код. Но, пожалуйста, дайте мне знать, если с тем, что я делаю, что-то в корне не так.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...