Node.js 未定义id(sails.socket.emit)
我只是尝试使用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
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。。。