sails.js+;socket.io:Can';t在客户端上接收标准sail.js/socket.io消息

sails.js+;socket.io:Can';t在客户端上接收标准sail.js/socket.io消息,socket.io,sails.js,Socket.io,Sails.js,使用sails.js(0.10.0-rc5)的最新测试版,我正试图做到这一点: sails new Test cd Test sails generate api user 创建文件assets/js/test.js var socket = io.connect('http://localhost:1337'); socket.on('connect',function() { console.log('connected'); socket.request('/user

使用sails.js(0.10.0-rc5)的最新测试版,我正试图做到这一点:

sails new Test
cd Test 
sails generate  api user
创建文件assets/js/test.js

var socket = io.connect('http://localhost:1337');
socket.on('connect',function() {
    console.log('connected');
    socket.request('/user',{}, function(users) { 
        console.log(users); 
    });

    socket.on('message', function(msg) {
        console.log("Message: " + msg);
    });

    socket.on('user', function(msg) {
        console.log("User: " + msg);
    });
});
我的问题

console.log(“用户:+msg”);和console.log(“消息:+msg”);在创建或更新用户时未收到任何消息。 根据文档和sails.js视频介绍,应自动发送此socket.io消息


要在我的客户端上成功接收sails.js/socket.io消息,我缺少什么?

如果您安装了最新的NPM版本,那么您也将拥有最新版本的。查看其基本用法,然后查看,其中解释了Sails v0.9.9x(Sails.js视频介绍中显示的)与最新版本之间的差异。最后,您的代码应该更像:

// Note--the latest sails socket client connects automatically!

// Get all of the existing users--also subscribes to socket events
// for those users
io.socket.get('/user', function serverResponded (body, sailsResponseObject) {
    console.log(body);
});

// When a socket message about a user is received, display it
io.socket.on('user', function(data) {
    console.log(data);
});
注释

  • 请特别注意迁移指南中关于
    .watch()
    的部分;这意味着您不再自动获取
    创建
    事件,而必须使用(对于
    用户
    模型)
    User.watch()
    在服务器代码中订阅它们
  • 请记住,一般情况下,您不会收到关于您自己触发的操作的套接字消息,因此如果您想测试消息处理代码是否正常工作,最好打开两个窗口(或选项卡),在其中一个窗口中执行请求,同时观察另一个窗口中的事件
  • 还请记住,只有在发出套接字请求时,才能订阅套接字事件;对
    /users
    的AJAX调用将检索所有当前用户,但您不会订阅事件。必须使用io.socket.get完成此操作

  • 你做了什么来解决这个问题?