例如,我基于 Laravel + Node.js 服务器构建聊天应用程序。
创建新消息的最佳想法是什么:
- 向服务器发送消息 -> 验证它并通过 Node.js 将其添加到数据库 -> 将消息返回给所有用户
- 在 Laravel 中制作 api 进行验证和数据库 -> 使用 ajax (我认为这不是最好的主意)
- 在 Laravel 中制作 api 进行验证和数据库 -> 向服务器发出消息 -> 在 Node.js 中向 Laravel 中的 api 发出请求 -> 将消息返回给所有用户
- 其他?
最佳答案
我会这样做:
1 - 使用 Node.js 验证消息并在有效时立即广播。
您可以利用 Node.js 事件和 EventsEmitter 并对每个新消息使用react。此外,通过这种方法,您将在消息有效后立即向所有用户广播该消息。
2 - 通过 Node.js 调用 Laravel API 将验证的消息保存到数据库
一旦您的消息被广播,您就可以通过在 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');
});
关于javascript - 验证数据并将其保存到数据库以供实时应用程序的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878334/