收到邮件请求时发送套接字消息

时间:2016-02-04 20:49:03

标签: node.js socket.io

当任何客户端发送帖子请求时,我想向所有连接的客户端发出socket.io消息。如何保持套接字打开,以便我的http请求方法可以访问连接的套接字。

我能够使以下工作正常,但如果客户端未连接,则post方法无效。

io.on('connection', function(socket){
   console.log('socket connected');
   app.post('/api/guests', function(req, res){
       socket.emit('newguest', {hello: 'world'});
   });
})

我也尝试将套接字保存到更高的范围,甚至是全局,但似乎也没有。

提前致谢!

1 个答案:

答案 0 :(得分:2)

你不必调用" socket emit"在里面。("连接" ...)

尝试这样的事情:

app.post('/api/news', user.can('access private page'), function(req, res, next) {
    io.sockets.emit("nuova:news", data);
});

在我的情况下,我通过" io"来自" server.js"的变量像这样的文件(或app.js):

require('./app/myRoute')(app, user, io);

然后在控制器中接收它:

module.exports = function(app, user, io) {
   ...
}

" IO"声明如下:

var wsServer = require('http').createServer(app);
var io = require('socket.io').listen(wsServer);

我希望这些额外的信息对你有用......