使用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
我试图在客户端使用Sails.js和sails.io.js创建一个一对一的聊天。
我可以让io.socket.get
和io.socket.post
工作,但我没有能够从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//文档/引用/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.
- Sails.js:同时发布文本输入和一个文件
- 使用Native Sockets在Android中实现WebSockets
- Sails.js:我可以将一些服务/模型打包为npm并在Sails.jss应用程序中加载npm吗
- 将对象传递到sails.js中的views/layout.ejs
- sails.js beforeCreate方法只接收required设置为true的模型属性
- 引用单个表的多列 - Sails JS API 模型
- 如何使用javascript访问sails.js模型中的属性
- Sails.js/Waterline.add()和.remove()仅适用于第二次调用
- Sails.js指定要从自动插入中排除的js文件
- 聚合Sails.JS/Waterline中的嵌套模型数据
- Sails.js获得多对多关联计数
- Node.js-socket.io-对io.sockets的引用突然未定义
- 如何在使用Passport.js和Sails.js注册后重定向到特定位置
- 如何防止sails.js在所有视图中传递req对象
- Sails.js在v1、v2等中分组路由
- sails.js中的模拟/存根全局变量
- 在Sails.js中通过关系填充多对多
- 如何将Sails.js挂钩路由连接到策略
- 使用Sails.JS为静态HTML/JS应用程序提供身份验证
- 使用sails.sockets.join和sails.sockets.broadcast向客户端发送Sails.js不会