带有Sails的Socket.io 2.x.

时间:2017-09-20 11:14:45

标签: socket.io sails.js

目前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实现?

1 个答案:

答案 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全局的好处,因此您可以将其重复用于自己的实现。