我在
中得到回应io.socket.on('chats', function (e, v) {
console.log(e)
});
使用下面的代码块。
io.socket.get('/chats', function (e, s) {
console.log(e);
});
所以,主要设置没问题。然后我试着定制一下。我想传递房间ID以从特定房间获取消息,而不是获取不必要的消息。但是在使用
时没有对新项目添加的响应io.socket.get('/chats/get?room=PJ1RcnwbBxsH3xZn', function (e, s) {
console.log(e);
});
然而,能够在ChatsController.get中使用return res.json(chats);
正确获取初始数据
来自ChatControllers.js
module.exports = {
get: function (req, res) {
if(!req.session.authenticated){
return res.json({error: true, message: 'You must be logged in to join chat.'})
}
if (!req.isSocket) {
return res.json({error: true, message: 'Inappropriate request format'})
}
sails.log(req.param('room'));
if(!req.param('room')){
return res.json({error: true, message: 'Inappropriate room ID'})
}
Chats.find({room: req.param('room')}).populate('user').exec(function (err, chats) {
if (err) {
return res.serverError(err);
}
Chats.subscribe(req, _.pluck(chats, 'id'));
return res.json(chats);
});
},
.....
我已添加Chats.subscribe(req, _.pluck(chats, 'id'));
订阅。
无法理解我在get
行动中遗漏的内容。我搜索过但没有得到很好的教程。所以探索文档,我试过这些。你能建议解决这个问题吗?
由于
答案 0 :(得分:0)
经过更多研究后我找到了解决方案。 sails.sockets.join()和 sails.sockets.broadcast()是我的玩具。
非常感谢。