Каналы в Socket.io - PullRequest
       18

Каналы в Socket.io

5 голосов
/ 18 мая 2010

Я пытаюсь передать сообщение через сервисный сокет Node.js socket.io (http://socket.io/) определенному подмножеству всех подписчиков.

Точнее, я хотел бы использовать каналы, которые могут использовать пользователи подпишитесь, чтобы эффективно передавать сообщения нескольким сотням людей одновременно.

Я не совсем уверен, если addEvent ('channel_name', x) это путь.

Я ничего не нашел в документах. Есть идеи?

Спасибо Мат

Ответы [ 4 ]

4 голосов
/ 16 декабря 2010

Это немного поздно (!), Но я заметил это в журналах реферера (я - автор Фэй). Публиковать сообщения из вашего приложения легко, независимо от того, находится ли он на том же сервере, что и Faye, или нет. Например:

var faye = require('faye'),
    http = require('http');

// Set up the server

var server = http.createServer(function(req, res) {
  // dispatch to your app logic...
});

var bayeux = new faye.NodeAdapter({mount: '/bayeux'});
bayeux.attach(server);
server.listen(8000);

Если логика вашего приложения находится в том же серверном процессе, вы можете сделать это:

bayeux.getClient().publish('/channel', {hello: 'world'});

В противном случае вы можете создать клиент в Node, который подключается к вашему серверу Faye:

var client = new faye.Client('http://0.0.0.0:8000/bayeux');
client.publish('/channel', {hello: 'world'});

В любом случае сервер Faye будет передавать сообщение всем подписанным клиентам, независимо от того, являются ли они серверными или клиентскими. Надеюсь, это поможет.

0 голосов
/ 23 октября 2011

Похоже, этот другой вопрос также ответил бы на этот вопрос, но если это не так, вы должны взглянуть на пространства имен socket.io , подумайте, что он был введен совсем недавно, но подумал, что он того стоил упоминая

0 голосов
/ 23 июня 2010

Я сейчас начинаю свое исследование той же проблемы. Socket.io выглядит великолепно, но да, я думаю, вы должны сами управлять списком подписчиков. В большинстве примеров приложений используется только один список подписчиков.

Я сталкивался с этим ... http://faye.jcoglan.com/

Превращает ваш сервер в приложение pubsub. Похоже, он довольно хорошо управляет списками подписчиков и обеспечивает хорошую иерархию каналов. Тем не менее, я не могу найти пример того, как он реагирует на опубликованные события в том же приложении, где работает faye ?? Я предполагаю, что это возможно. Я должен взглянуть на источник. Похоже, что он приводит пример запуска отдельного приложения узла на сервере, который работает как клиент.

Другая функция, которую я ищу, - это разрешения. Я бы хотел, чтобы только определенные клиенты могли публиковать на определенных каналах.

0 голосов
/ 20 мая 2010

Кажется, вы можете использовать Redis для публикации / подписки для этого. Смотрите эту ссылку .

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