Задать вопрос
@falcon_sapsan
DevOps

Как отправить сообщение через socket.io вне конструкции io.sockets.on('connection', function (client)?

есть файл index.js
в нем я слушаю события от астериска, использую Nami.
var nami = new namiLib.Nami(namiConfig);
....
nami.on('namiEvent', function (event) {
//вот тут надо отправить сообщение о событии
})


Этот же файл обслуживает небольшой чат, на socket.io
io = require('socket.io');
....
io.sockets.on('connection', function (client) {
client.on('adduser', function (message) {
...
});
}


Как мне используя существующий в файле io = require('socket.io'); отправить сообщение о событии астериска всем в чате?
  • Вопрос задан
  • 264 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
var nami = new namiLib.Nami(namiConfig),
    io = require('socket.io'),
    clients = [];

nami.on('namiEvent', function (event) {
  clients.forEach(function(client) {
    client. // делаем что нужно с каждыйм клиентом
    // или фильтруем массив или выбираем одного
  });
})

io.sockets.on('connection', function (client) {
  client.on('adduser', function (message) {
    clients.push(client);
  });
});

А вообще не используйте socket.io, он ни для чего не нужен, используйте на сервере https://www.npmjs.com/package/websocket а на клиенте просто var socket = new WebSocket("ws://domain.com:port/path");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы