Socket.io с VVV - сообщения не принимаются на клиенте

Я бегу VVV (Vagrant) с сокетом-Io-Redis. Кажется, это работает, сообщения отправляются в Redis.

Я проверяю с SUBSCRIBE socket.io#/# который регистрирует кучу сообщений для тестирования.

Это пример ответа, который я вижу в терминале -

1) "message" 2) "socket.io#/#" 3) "\x93\xa7emitter\x83\xa4type\x02\xa4data\x92\xa4time\xb82016-04-03T22:17:21.478Z\xa3nsp\xa1/\x82\xa5rooms\x90\xa5flags\x80"

Узел JS -

var redis = require('socket.io-redis');
var io = require('socket.io')(3000);

io.adapter(redis({ host: '192.168.50.4', port: 6379 }));

// Handle opened socket connections
io.on('connection', function(socket) {
    console.log( 'Connection' );
});

var io = require('socket.io-emitter')({ host: '192.168.50.4', port: 6379 });
setInterval(function(){
  io.emit('time', new Date);
}, 5000);

Клиент -

( function( window, undefined ) {
    'use strict';

    var socket = io( '192.168.50.4:3000', {transports:['websocket']} );

    socket.on( 'time', function() {
        console.log( 'Received time' );
    });

    socket.on( 'connect', function() {
        console.log( 'Connected' );
        console.log( socket );
    });

} )( this );

Когда я запускаю приложение Node, я вижу сообщение Connection, в консоли моего браузера я вижу сообщение Connected (тогда сокет для отладки).

Я не вижу ничего явно неправильного, клиент подключается, и излучатель, кажется, работает. Но ничего не испускается, клиент никогда не получает.

Я что-то пропустил? IP-адреса не являются локальными хостами из-за запуска Vagrant.

Любой совет приветствуется. Спасибо!

РЕДАКТИРОВАТЬ:

Быстрое обновление, я могу излучать без использования socket.io-emitter, однако он не проходит через Redis. Когда я использую эмиттер, он правильно проходит через Redis, как упоминалось выше.

Кажется, мой клиент не получает сообщения от Redis, хотя порты открыты.

Вот что я пытаюсь -

socket.emit( 'new_post', 'Nope' );

var io = require('socket.io-emitter')({ host: '192.168.50.4', port: 6379 });
io.emit( 'new_post', 'Yep' );

В моем браузере я вижу Nope но больше ничего После, я monitor Redis и увидеть следующее -

"publish" "socket.io#/#" "\x93\xa7emitter\x83\xa4type\x02\xa4data\x92\xa8new_post\xa3Yep\xa3nsp\xa1/\x82\xa5rooms\x90\xa5flags\x90"

Мой сервер также не видит сообщений при использовании Redis, я проверяю с помощью -

socket.on( 'new_post', function( msg ){
    socket.emit( 'new_post', msg );
});

0 ответов

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