使用sails.sockets.join和sails.sockets.broadcast向客户端发送Sails.js不会

Sails.js to client using sails.sockets.join and sails.sockets.broadcast doesn't return info to the client

本文关键字:sockets sails Sails 不会 js join broadcast 使用 客户端      更新时间:2023-09-26

我试图在客户端使用Sails.js和sails.io.js创建一个一对一的聊天。

我可以让io.socket.getio.socket.post工作,但我没有能够从sails.sockets.broadcastModel.publish收到任何东西,如下所示:

使用Sails.js进行个性化聊天

这里

Sails.js + socket。io:从服务器向客户端发送消息

服务器端代码:

UserController.js

module.exports = {
    listen: function(req, res) {
        console.log("about to join " + userId);
        sails.sockets.join(req.socket, req.param('userId'));
    }
};

: http://beta.sailsjs.org//文档/引用/sails.sockets sails.sockets.join.html

MessageController.js

// Some code to get userId and message model here
console.log("about to broadcast on " + userId);
sails.sockets.broadcast(userId, 'conversation_message', message); 
// Did not JSONify the message model, not sure if I need to?

: http://beta.sailsjs.org//文档/引用/sails.sockets sails.sockets.broadcast.html

客户端代码:

// Some code to get userId...
io.socket.get('/user/listen', {
    userId: userId
}, function() {
    io.socket.on('conversation_message', function(message) {
        console.log("we have a message");
    });
});

当我点击触发userId广播的路由时,没有任何东西被发送到这个客户端代码来记录we have a message。什么好主意吗?

我已经试过模型了。订阅/模型。同样的问题

Update: listen函数实际上没有返回——正如有人在评论中建议的那样,他们后来删除了。将res.send(200);添加到listen函数的末尾就足以使其工作了。

如果那个人能再加一次评论作为答案,我会接受的。

我认为我的评论可能不值得,因为我重读了你的帖子,你说你已经开始工作了,所以我认为我错了。我的评论大意如下,但我不记得逐字记录了)

您是否检查过以确保您实际上在客户端侦听上得到响应?您在整个代码中实际得到的日志语句是什么?在客户端套接字中添加console.log('get user listen')或其他内容。get.