目前sails.io正在使用socket.io 1.7.1。帆帆1.0不会改变。所以我打算使用socket.io 2.0而不是依赖sails实时层来使用socket.io 2.0。根据socket.io文档,可以很容易地在Express中实现如下:
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');
});
我们如何在帆中编写相同的socket.io 2.0实现?
答案 0 :(得分:1)
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');
});
}
您还需要关闭sockets
文件中的默认pubsub
和.sailsrc
摘要:
"hooks": {
"sockets": false,
"pubsub": false
}
这也有释放sails.io
全局的好处,因此您可以将其重复用于自己的实现。