Sails.js到客户端使用sails.sockets.join和sails.sockets.broadcast不返回到客户端的信息
我试图在客户端使用Sails.js和sails.io.js创build一对一聊天。
我可以得到io.socket.get
和io.socket.post
的工作,但我没有能够从sails.sockets.broadcast
或Model.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方法以及没有运气 – 同样的问题。
更新: listen
function并不实际返回 – 正如有人在评论中提出的,他们后来删除。 添加res.send(200);
listen
function的结尾就足以使其工作。
如果那个人再次添加他们的评论作为答案,我会接受。
(那是我,我以为我的评论可能是不值得的,因为我重读了你的文章,你说你得到了工作,所以我认为我错了。我的评论是下面的效果,但我不记得逐字)
你有没有检查过,以确保你实际上得到了客户端的回应? 你在代码中实际上获得了哪些日志语句? 把一个console.log('get user listen')或者东西放在客户端的socket.get中。