在SailsJS WebSocket

时间:2016-05-26 15:01:24

标签: node.js sails.js

我在

中得到回应
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行动中遗漏的内容。我搜索过但没有得到很好的教程。所以探索文档,我试过这些。你能建议解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

经过更多研究后我找到了解决方案。 sails.sockets.join() sails.sockets.broadcast()是我的玩具。

非常感谢。