例如,我基于laravel + node.js服务器构建聊天应用程序 创建新消息的最佳方法是什么:
答案 0 :(得分:2)
我会这样做:
您可以使用Node.js事件和EventsEmitter并对每个新的消息做出反应。此外,通过这种方法,您将尽快将msg广播给所有用户。
现在您的消息被广播后,您可以通过调用Node.js应用程序中的Laravel API来保存到数据库。
var events = require('events');
var eventEmitter = new events.EventEmitter();
function saveToDb() {
// call to api here
}
function validate(msg) {
//validate msg
return valid;
}
eventEmitter.on('msgBroadcasted', saveToDb);
eventEmitter.on('msgBroadcasted', anotherFunction);
socket.on('new message', function (data) {
if (!validate(data)) { return false }
socket.broadcast.emit('new message', {
username: socket.username,
message: data
});
return eventEmitter.emit('msgBroadcasted');
});