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

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

我可以得到io.socket.getio.socket.post的工作,但我没有能够从sails.sockets.broadcastModel.publish接收任何东西, sails.sockets.broadcast Model.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/#/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广播的路线,没有什么是发送到这个客户端的代码来loggingwe have a message 。 有任何想法吗?

我已经尝试了Model.subscribe / Model.publish方法以及没有运气 – 同样的问题。

更新: listenfunction并不实际返回 – 正如有人在评论中提出的,他们后来删除。 添加res.send(200); listenfunction的结尾就足以使其工作。

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

(那是我,我以为我的评论可能是不值得的,因为我重读了你的文章,你说你得到了工作,所以我认为我错了。我的评论是下面的效果,但我不记得逐字)

你有没有检查过,以确保你实际上得到了客户端的回应? 你在代码中实际上获得了哪些日志语句? 把一个console.log('get user listen')或者东西放在客户端的socket.get中。