Javascript 在sails.js中放置socket.io逻辑的好位置在哪里

Javascript 在sails.js中放置socket.io逻辑的好位置在哪里,javascript,socket.io,sails.js,Javascript,Socket.io,Sails.js,如果我想使用sails.io,哪里是放置逻辑的好地方?config/bootstrap.js是放置它的好地方吗?或者我可以在其他地方创建其他文件吗 以下代码有效: // config/bootstrap.js module.exports.bootstrap = function (cb) { sails.io.sockets.on('connection', function(socket) { console.log("Got a connected client");

如果我想使用
sails.io
,哪里是放置逻辑的好地方?
config/bootstrap.js
是放置它的好地方吗?或者我可以在其他地方创建其他文件吗

以下代码有效:

// config/bootstrap.js
module.exports.bootstrap = function (cb) {

  sails.io.sockets.on('connection', function(socket) {
    console.log("Got a connected client");

  });

  cb();
};

直到
0.9.4
,它才支持此功能

第一步。获取最新版本的sails.js

第二步。使用cli生成SAIL

第三步。请参见
config/sockets.js
,自定义
onConnect
功能,请参见以下内容:

module.exports.sockets = {

  // This custom onConnect function will be run each time AFTER a new socket connects
  // (To control whether a socket is allowed to connect, check out `authorization` config.)
  // Keep in mind that Sails' RESTful simulation for sockets 
  // mixes in socket.io events for your routes and blueprints automatically.
  onConnect: function(session, socket) {

    // By default: do nothing
    // This is a good place to subscribe a new socket to a room, inform other users that
    // someone new has come online, or any other custom socket.io logic
    console.log("Got a connected client");

  },
...

对于逻辑处理,您可以将其放在以下位置:

  • 控制器:如果请求触发实时事件

  • 服务:如果你想:)但我认为控制员是被推荐的

  • /config/socket.js onConnect()、onDisconnect():如果要将已连接的套接字添加到某些房间或从某些房间中删除,或添加一些初始套接字设置,等等

  • /policies/sessionAuth.js:用于某些实时authen逻辑

  • 其他地方

  • 旁边,你应该考虑这个特性,这可以帮助你节省很多的努力,用Socket实现实时过程。我发现这很酷:)

    你可能会发现这个答案很有帮助。