node.js + socket.io + redis + rails - Приложение RealTime

Мне нужно добавить приложение реального времени (Ruby On Rails), поэтому я думаю, что лучший способ сделать это - использовать node.js + socket.io + redis.

У меня есть этот файл application.js в бэкэнде (node.js)

var app = require('http').createServer();
var io = require('socket.io');
var redis = require('redis').createClient();
var _ = require('underscore')._;

io = io.listen(app);
io.configure(function() {
    io.set("transports", ["xhr-polling"]);
    io.set("polling duration", 10);
    io.set("close timeout", 10);
    io.set("log level", 1);
})

redis.subscribe('rt-change');

io.on('connection', function(socket) {
    redis.on('message', function(channel, message) {
        socket.emit('rt-change', message)
    });
});

var port = process.env.PORT || 5001;
app.listen(port);

И messages.js во фронтэнде

 var socket = io.connect('http://localhost:5001/socket.io');
socket.on('rt-change', function (data) {
    console.log(data);
});

я запускаю application.js сузел application.js команда и это работает!

MacBook-Pro-Zhirayr: нт-приложение

Но когда япытаюсь отправить сообщение с помощью redis ($ redis.publish 'RT-изменения», {Привет:'Мир'}) из приложения Rails мой браузер неничего не записывать в консоли. Я'Я уверен, что соединение с браузером установлено, потому что, когда я останавливаю узел, он выдает ошибку соединения отказано. И я'Я уверен, что соединение между redis и узлом установлено, вызывает console.log (message) в application.js. Но console.log в браузере неничего не записывать.

Есть идеи почему?

Благодарю.

UPD для # Antoine

Добавлен console.log в application.js io.on ('соединение», function (socket) {redis.on ('сообщение', функция (канал, сообщение) {console.log ('новое сообщение от redis '); socket.emit (»RT-изменения», сообщение); }); });

Когда р.публишьRT-изменения», {: привет => 'Мир'} выполняется, узел записывает это:

new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis
new message from redis

Это'Как ни странно, узел регистрирует 11 раз для 1 сообщения.

Ответы на вопрос(2)

Ваш ответ на вопрос