Многоканальный в зависимости от пути с nodejs и redis - PullRequest
1 голос
/ 28 июня 2011

Я пытаюсь создать многоканальный в зависимости от пути с nodejs в том же порту.Например (мой порт 8080):

wwww.exemple.com: 8080 / channel / 1

wwww.exemple.com: 8080 / channel / 2

wwww.exemple.com: 8080 / channel / 3

wwww.exemple.com: 8080 / channel / 4

Каждый канал пути URL соответствует каналу redis

Например(канал-X):

var channel = 'channel-X'
getRedis.subscribe(channel);

но я не знаю, как связать канал и повторить URL.

вот мой код с текущим временем.

socket.on('connection', function(client) {
const getRedis = redis.createClient();
const sendRedis = redis.createClient();
getRedis.subscribe('channel-1');

getRedis.on("message", function(channel, message) {
    client.send(message);
});


client.on('message', function(msg) {
    sendRedis.publish('channel-1',msg);
});


client.on('disconnect', function() {
    getRedis.quit();
    sendRedis.quit();
});

});

Я немного в тумане, все предложения будут приветствоваться:)

1 Ответ

0 голосов
/ 07 июля 2011

Вы не можете связать название своего канала с вашим socket.io.Поскольку клиент socket.io несет только самую последнюю информацию пользователя.

Решение 1: Вы можете передать имя канала со стороны клиента.

//Client side


var socket = new io.Socket();

socket.on('connect', function() {

socket.send({ChannelName:'channel-X',Message:'HI !!'});
});




//Server side

socket.on('connection', function(client) {

const getRedis = redis.createClient();


getRedis.on("message", function(channel, message) {
    client.send(message);
});


client.on('message', function(msg) {
    //Assume the input msg is JSON structure {ChannelName:'channel-X',Message:'HI !!'}
    var data = JSON.parse(msg);
     getRedis.subscribe(data.ChannelName);

});

});

Решение 2:

Использованиехранилище сеансов для сохранения / получения имени канала по идентификатору сеанса сокета.

Проблема: я не понимаю, что вам нужно "URL для управляемых подписок на повторы каналов"

Что такое повтор каналов?

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