Отправка сообщения в Socket.IO через запрос на получение - PullRequest
0 голосов
/ 19 августа 2011

У меня есть экспресс-сервер node.js, обслуживающий Socket.io.Мне бы хотелось иметь возможность получать запросы на экспресс-сервер, который будет автоматически отправлять сообщение на канал.

var app = require('express').createServer()
  , io = require('socket.io').listen(app)
app.listen(80);
app.get('/:channel/:message', function (req, res) {
  //Code to create socket
  socket.emit("sent from get", {channel:req.params.channel, message:req.params.message})
});

io.sockets.on('connection', function (socket) {
  socket.on('sent from get', function (data) {
    socket.broadcast.to(data.channel).emit('channel message', { message: data.message});
  });
});

Как создать (и уничтожить) сокетное соединение в блоке app.get?

(Для ясности я хочу использовать это для отправки быстрого сообщения с рельсовсервер, когда конкретный объект сохраняется, и сообщение отправляется каждому соответствующему пользователю.)

Ответы [ 2 ]

1 голос
/ 19 августа 2011
io.sockets.in(req.params.channel).emit("channel message", {mes:req.params.message})

Это отправит сообщение всем пользователям в запрошенном канале.

0 голосов
/ 07 января 2013
var chat = io.of('/chat').on('connection', function (socket) {
socket.emit('a message', { that: 'only', '/chat': 'will get' });
chat.emit('a message', { everyone: 'in', '/chat': 'will get' }); });

В следующем примере определяется сокет, который прослушивает '/ chat'

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