javascript - 使用 sails.sockets.join 和 sails.sockets.broadcast 到客户端的 Sails.js 不会将信息返回给客户端

标签 javascript node.js websocket socket.io sails.js

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

我可以让 io.socket.getio.socket.post 工作,但是我无法从任何一个 收到任何东西sails.sockets.broadcastModel.publish 如下所示:

Personalized chat using Sails.js

或在这里

Sails.js + socket.io: Sending messages from server to clients

服务器端代码:

用户 Controller .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/#/documentation/reference/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/#/documentation/reference/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 命中触发广播的路由时,没有任何内容发送到此客户端代码以记录 我们有消息。有什么想法吗?

我也尝试了 Model.subscribe/Model.publish 方法,但没有成功——同样的问题。

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

如果那个人愿意再次添加他们的评论作为答案,我会接受。

最佳答案

(那是我。我认为我的评论可能不值得,因为我重读了你的帖子,而你说你已经开始工作了,所以我认为我错了。我的评论是下面的效果,但我不不要逐字记住)

您是否检查过以确保您确实在客户端收听时收到了响应?您实际上在整个代码中获得了哪些日志语句?在客户端 socket.get 中放置一个 console.log('get user listen') 或其他内容。

关于javascript - 使用 sails.sockets.join 和 sails.sockets.broadcast 到客户端的 Sails.js 不会将信息返回给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24837825/

相关文章:

javascript - 从显示 :none to visible on click 切换类

node.js - 是否可以使用 'firebase-admin' 包调用 firebase 函数?

c# - SslStream .read() 一旦数据包返回第一个字节

c++ - c++套接字io客户端无法读取使用来自另一个客户端的广播从节点服务器发送的数据

javascript - 如何实现Websocket?

javascript - React Native中VirtualzedList更新慢时返回对象的含义

javascript - 使用 Javascript 正则表达式在 url 末尾的下划线后显示数字

javascript - 是否可以将函数的所有参数作为该函数内的单个对象获取?

javascript - 在运行时添加用户密码

node.js - nodejs 简单的 TCP 聊天,服务器没有收到客户端消息