我们正在帆0.10.5上构建实时webapp。我们有很多模型通过协会联系起来。例如,我们有一个User模型和一个Post模型,其中一个帖子总是有一个用户。
populate
确保在抓取用户时,我们也会收到帖子。我们在sails控制器中使用subscribe
和watch
模型方法告诉(websocket)客户端有关更新的信息。
然而,只要websocket客户端同时观看用户模型(watch
和subscribe
d到所有用户)和Post模型(watch
)。并且创建了一个新帖子(例如通过另一个套接字)我们的客户端只接收Post的新事件,同时用户也改变了(通过关联间接)。
我们如何确保我们的客户也能获得这些更新?基本上我们需要一种方法来将任何填充模型的结果同步到我们的客户端。
答案 0 :(得分:0)
我不确定这是否是最好的方法,但是做的是: 基本上,只要您更新帖子,就可以发布用户“更新”事件。
// Post.js
module.exports = {
attributes: {
title: 'string',
owner:{
model:'user'
}
},
afterUpdate: function(post, cb){
User.publishUpdate(post.owner, {/* props you want to send */});
cb();
}
};