Sailsjs Socket IO

我是SailsJs和Socket IO的新手 . 我想在Sailsjs中执行下面的Socket IO示例 . 在服务器端,我需要执行以下代码 . 但我不知道在哪里放置此代码 .

var io = require('socket.io').listen(80); 

 io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

我知道我可以将它放在Cntroller的函数中,但它会为每个我不想要的请求添加监听器 .

客户端:

var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });

告诉我在sailsjs中放置服务器端代码的位置,并帮助我执行上面的socketIO示例 .

回答(1)

3 years ago

好吧,你的代码建议你想在 connection 上做点什么 .

有一个文件位于 /config/sockets.js ,内置了 connectdisconnect 的函数,也许你正在寻找这个 .

如果不是,那么你会想把它放到一个控制器 "action" 中,如果你更深入地思考你想要实现的目标,那么你可能需要一个你打电话给你的动作来处理这个问题 .

如果你最终尝试了 sockets.js 文件,那么你应该有一些看起来像这样的东西

onConnect: function(session, socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
 // 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
}