简体   繁体   中英

Sending message to Socket.IO via get request

I have an express node.js server serving Socket.io. I would like the ability to make get requests to the express server that will automatically send a message to a channel.

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});
  });
});

How to I create (and destroy) a socket connection in the app.get block?

(For clarity, I want to use this to send a quick message from a rails server when a particular object is saved, and have a message pushed to each appropriate user.)

io.sockets.in(req.params.channel).emit("channel message", {mes:req.params.message})

这将向请求频道中的所有用户发送一条消息。

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' }); });

The following example defines a socket that listens on '/chat'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM