nodejs + socket.io + heartbeat

Моя ошибка:

engine.io./lib/socket.js строка 98

01: Socket.prototype.onPacket = function (packet) {
02:   if ('open' === this.readyState) {
03:     debug('packet');
04:     this.emit('packet', packet);
05:     this.setPingTimeout();
06:     switch (packet.type) {
07:       case 'ping':
08:         debug('got ping');
09:         this.sendPacket('pong');
**10:         this.emit('heartbeat');**
11:         break;
12:       case 'error':
13:         this.onClose('parse error');
14:         break;
15:       case 'message':
16:         this.emit('data', packet.data);
17:         this.emit('message', packet.data);
18:         break;
19:     }
20:   } else {
21:     debug('packet received with closed socket');
22:   }
23: };

Как я могу слушать событие.

this.emit ('биения');

Я написал этот код:

this.sio.sockets.on('connection', function (socket) {   
    socket.on('heartbeat', function () {
        console.log("heartbeat " + socket.id);
    });
}

но это не печатает.

Отладочная печать:

2017-06-16: Fri, 16 Jun 2017 06:26:44 GMT engine:ws received "2"
2017-06-16: Fri, 16 Jun 2017 06:26:44 GMT engine:socket packet
2017-06-16: Fri, 16 Jun 2017 06:26:44 GMT engine:socket got ping
2017-06-16: Fri, 16 Jun 2017 06:26:44 GMT engine:socket sending packet "pong" (undefined)

Кто может мне помочь.

1 ответ

Привет, вы посылаете данные по emit heartbeat без каких-либо параметров. Вы должны передать данные с помощью emit. This.emit('биения', пакет)

Другие вопросы по тегам