2016-02-04 170 views
1

我想在任何客戶端發送發佈請求時向所有連接的客戶端發送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'}); 
    }); 
}) 

我也試過保存插座到一個更高的範圍,甚至全球,但似乎並沒有擦出火花。

在此先感謝!

回答

2

你不必叫「插座發出的」關於內部(「連接」 ...)

嘗試是這樣的:

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

在我來說,我通過從 「server.js」 文件 「IO」 變量(或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); 

我希望這些額外的信息可以對你有用...

+0

謝謝!我得到它的工作! – mattc19

+0

@ mattc19太棒了! –

相關問題