我实际上是想与 Sails.js websockets 建立一个完整的聊天,但即时面临一些麻烦。
当新客户端连接到聊天时,我成功发送并收到新消息,但我会新客户获取旧消息(例如聊天中发送的最后20条消息)。
Message.js(Model)
module.exports = {
attributes: {
name : { type: 'string' },
message : { type: 'string' }
}
};
MessageController.js(Controller)
module.exports = {
new: function(req, res) {
var data = {
name: req.param('name'),
message: req.param('message'),
};
Message.create(data).exec(function created(err, message){
Message.publishCreate({id: message.id, name: message.name, message: message.message});
});
},
subscribe: function(req, res) {
Message.watch(req);
}
};
我有一个关于在我的模型上使用“查找”功能的想法,但并不是真正的结论。
我希望我不会错过关于Sails可能性的大事!
需要你的帮助:)谢谢!
答案 0 :(得分:1)
Message.find({sort: 'createdAt ASC'}).exec(function(err, results) {
//results is an array of messages
});
http://sailsjs.org/documentation/concepts/models-and-orm/query-language
答案 1 :(得分:0)
我已将此代码添加到订阅功能,但我在客户端收到的任何内容都没有收到 on(' message')
/* Get the last 5 messages */
Message.find({sort: 'createdAt DESC'}).limit(5).exec(function(err, messages) {
for (var i = 0; i < messages.length; i++) {
sails.sockets.broadcast(req.socket, 'message', messages[i]);
}
});