node.js - Sailsjs 套接字 IO

标签 node.js socket.io sails.js

我是 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); }); });


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

客户端:



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

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

最佳答案

嗯,你的代码建议你想在 connection 上做点什么。

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

如果您不是,那么您将希望将其放入 Controller “ Action ”,如果您更深入地思考您要实现的目标,那么您可能需要一个您调用的 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
}

关于node.js - Sailsjs 套接字 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20603672/

相关文章:

mysql - Sailsjs Mysql ORM 对同一个表字段进行多次查询

node.js - 在 MongoDB 中删除时自动删除引用对象

javascript - node.js,bluebird,执行路径控制不好

zend-framework - Zend MVC 项目与 Node.js 一起提高 JavaScript 性能

node.js - 如何在 Angular 2、Node Js 中添加基于角色的 token 以分别登录前端和管理员

node.js - 尝试使用 socket.io 使变量可供浏览器使用

node.js - IISNode Socket.io NodeJS 应用程序(使用 socketio4net 从 C# 连接)

javascript - 无法从函数作用域向外部对象添加属性?

testing - 如何在测试期间模拟 Sails.js/Waterline 模型

node.js - Node js删除目录中的旧文件