Im фактически пытается создать полный чат с Sails.js websockets, но im сталкивается с некоторыми проблемами.Получение старых записей из моделей Sails
Мне удастся отправить и получить новые сообщения, когда новый клиент подключится к чату, но я буду новым клиентом получить старые сообщения (например, 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);
}
};
У меня была идея об использовании функции "найти" на моей модели, но на самом деле не убедительны.
Надеюсь, что я не пропущу что-то большое в отношении возможностей Sails!
Нужна ваша помощь :) Спасибо!
Итак, в функции подписки контроллера вы передаете новому клиенту предыдущие сообщения? Нет другого и, может быть, чистого способа сделать это? И, делая это, как вы получаете его на клиенте? Я использую AngularJS Controller и испускаю данные, похоже, не триггером события onMessage:/ – AZVR
Вам не нужно делать это в подписке. Паруса имеет чертежи, поэтому вы можете просто сделать запрос GET в/message? Sort = created ASC. ИЛИ, вы можете переписать чертежи парусов и сделать свою собственную функцию «найти» в своем контроллере. Во всяком случае, вам было бы лучше с Экспрессом, чем с парусами. Это будет даже более образованным. – yBrodsky