例如,我基于laravel+node.js服务器构建聊天应用程序。
创建新消息的最佳主意是什么:
- 向服务器发出 msg ->验证它并通过 node 将其添加到数据库中.js -> 将 msg 返回给所有用户
- 使用 ajax 在 laravel 中制作 api 进行验证和 db ->(我认为这不是最好的主意)
- 在 laravel 中进行 api 以进行验证,db -> 向服务器发出 msg> 节点中的请求.js向 laravel 中的 API 发出 -> 将 msg 返回给所有用户
- 其他?
我会这样做:
1 - 使用 Node 验证 msg.js并在有效时立即广播。
您可以使用 Node.js 事件和事件发射器,并对每个新消息做出反应。同样使用这种方法,您将在有效后立即将消息广播给所有用户。
2 - 将经过验证的消息保存到通过节点调用 Laravel API 的数据库.js
一旦您的消息被广播,现在您可以通过在 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');
});