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 );
});