如何观察在 Sails .js 中添加到模型中的新记录
How to watch for new records added to model in Sails.js
当用户向用户聊天消息传递系统中的某个特定 Id(在用户模型中)发送消息时,我正在尝试推送消息。我无法让它工作,也不知道如何开始。我的Messaging
控制器中有这个:
sendAndReceiveMsgs: function(req, res) {
if (req.isSocket && req.param('message') && req.param('to')) {
var message = req.param('message'),
from = req.user.id,
to = req.param('to');
Messaging.create({ message: message, from: from, to: to })
.exec(function (err, created) {
console.log('sent');
});
} else if (req.isSocket) {
Messaging.find({ where: { to: req.user.id }, limit: 1, sort: 'id DESC' })
.exec(function(err, messages) {
if(messages.length > 0){
console.log(message.length + " new messages");
} else {
console.log("No new messages");
}
Messaging.subscribe(req.socket, message);
Messaging.watch(req);
Messaging.publishCreate({ id: message[0].id, message: message[0].message });
});
} else if (!req.isSocket) {
return res.notFound();
}
}
但是,它不会向用户推送进一步的新消息(为他准备)。有什么线索吗?我真的不明白这一点,也不知道从这里去哪里。谢谢!
请同时显示客户端代码。我注意到的一件事是你正在使用订阅,但它仅用于查看由.publishUpdate(),.publishDestroy(),.publishAdd()和.publishRemove()发出的消息。不确定这是否有帮助
你需要在客户端中使用io.socket.on。请参阅此处的文档。如果使用发布/订阅方法,则 eventIdentity 也是模型名称。
相关文章:
- Sequelize associations:set[Models]添加新模型,而不是关联现有模型
- 添加/更改模型后重新影响和渲染集合
- 如何观察在 Sails .js 中添加到模型中的新记录
- 为什么将子模型添加到两个父模型
- 主干.js:为每个模型添加验证
- 一种对MVC中的模型进行封装(添加隐私)的方法
- 如何在Marionette中向compositeview添加更多模型
- Ember.js为特定的模型id添加css类
- 淘汰MVC,绑定模型&将对象添加到模型中
- 主干中的比较器在添加新模型时需要排序调用
- Ember.js按名称查找模型项,然后将其添加到现有的不同模型hasMany记录中
- Backbone.js在模型后面添加了一个计算属性's已解析
- 调用ko.applyBindings后,向Knockout视图模型添加新属性
- AngularJS添加表示数组模型的输入
- 第一步's与THRE.js:试图将搅拌机模型添加到场景中的问题
- 主干:从集合视图向集合添加模型
- 添加模型到集合问题
- 在Rails中向Charts.js中添加模型数据
- 主干:如何在添加模型数组时仅触发一次添加事件
- 不能添加模型到mongo数据库