Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 未定义id(sails.socket.emit)_Node.js_Sockets_Undefined_Sails.js - Fatal编程技术网

Node.js 未定义id(sails.socket.emit)

Node.js 未定义id(sails.socket.emit),node.js,sockets,undefined,sails.js,Node.js,Sockets,Undefined,Sails.js,我只是尝试使用sails.socket.emit()发送消息,结果如下: error: Sending 500 ("Server Error") response: Error (SAILS:HOOK:SOCKETS:USAGE):: `sails.sockets.get()` cannot lookup socket w/o an id (got: `undefined`) 控制器中的代码: sayHiToFriend: function(req, res) { var frien

我只是尝试使用sails.socket.emit()发送消息,结果如下:

error: Sending 500 ("Server Error") response:
 Error (SAILS:HOOK:SOCKETS:USAGE):: `sails.sockets.get()` cannot lookup socket w/o an id (got: `undefined`)
控制器中的代码:

sayHiToFriend: function(req, res) {
    var friendId = req.param('id');
    sails.sockets.emit(friendId, 'privateMessage', {from: req.session.userId, msg: 'Hi!'});
    res.json({
      message: 'Message sent!'
    });
}
和客户端:

io.socket.get('/user/sayHiToFriend', function serverSays(err,users){

  console.log('with headers: ', JWR.headers);
  console.log('and with status code: ', JWR.statusCode);*/
        if (err)
            console.log(err)

        console.log(JSON.stringify(users));

});
我是否必须将id作为数据传递给io.socket.get?如果是,怎么做? 编辑:解决方案:

 sails.sockets.emit(sails.sockets.id(req.socket), 'welcome', {custom: 'data here'});

我也有同样的问题。似乎Sails.js有一些内部问题或其他我们无法控制的东西……在我的例子中,几个小时前一切都很好,现在它给出了那个错误。我简单地用lodash压缩ID数组就解决了这个问题:

User.findOne({'id': req.body.id}, function(error, user) {
            var subscribers = _.compact(User.subscribers(user));
            sails.sockets.emit(subscribers, "notification", {msg: req.body.msg});
});

现在一切都很好!希望有帮助

你必须提供你的代码。修改了我原来的帖子。最初的问题是一些愚蠢的语法问题。。但是现在我得到了这个,看起来有些东西没有定义,所以它不是friendId就是req.session.userIdSorry,我又编辑了一遍,所以我想你没有看到代码的相关部分。似乎我可以将数据传递到io.socket.get。这可以消除错误,但我会得到其他错误。我不知道如何正确地传递套接字Id。。。