我实际上试图建立一个完整的聊天与Sails.js websockets,但我面临一些麻烦。
当新客户端连接到聊天时,我成功发送和获取新消息,但我将新客户端获取旧消息(如在聊天中发送的最后20条消息)。
Message.js(模型)
module.exports = {
attributes: {
name : { type: 'string' },
message : { type: 'string' }
}
};
MessageController.js(控制器)
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);
}
};
我有一个关于在我的模型上使用"查找"功能的想法,但不是真正的结论。
我希望我没有错过什么关于风帆的大可能性!
需要你的帮助:)谢谢!
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 我将此代码添加到我的订阅函数,但我没有收到任何在我的客户端监听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]);
}
});