Socket.io 2.x带帆
目前sails.io正在使用socket.io 1.7.1。它不会在sails 1.0中改变。所以我计划使用socket.io 2.0,使用socket.io包,而不是依赖sails实时层。根据socket.io文档,在express中很容易实现,如下所示:Socket.io 2.x带帆,socket.io,sails.js,Socket.io,Sails.js,目前sails.io正在使用socket.io 1.7.1。它不会在sails 1.0中改变。所以我计划使用socket.io 2.0,使用socket.io包,而不是依赖sails实时层。根据socket.io文档,在express中很容易实现,如下所示: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
我们如何在sails中编写相同的socket.io2.0实现 在Sails 1.0应用程序中使用的底层Express服务器公开为
Sails.hooks.http.server
。因此,您可以在应用程序的config/bootstrap.js
文件中,将其放在上面:
module.exports.bootstrap = function (done) {
var io = require('socket.io')(sails.hooks.http.server);
io.on('connection', function(socket){
console.log('a user connected');
});
}
"hooks": {
"sockets": false,
"pubsub": false
}
您还需要关闭.sailsrc
文件中的默认sockets
和pubsub
挂钩:
module.exports.bootstrap = function (done) {
var io = require('socket.io')(sails.hooks.http.server);
io.on('connection', function(socket){
console.log('a user connected');
});
}
"hooks": {
"sockets": false,
"pubsub": false
}
这还具有释放
sails.io
global的好处,因此您可以将其重新用于您自己的实现。如果我在Bootstrap中有一个实现,您建议如何为控制器导出套接字以发出消息?建立连接时,我应该将其分配给sails.config.global还是sails.socket=socket
?