Node JS 和 Socket.io 建议 - post 信息通过路由或通过套接字发送到数据库哪个更好?
Node JS & Socket.io Advice - Is it better to post information to a database through a route, or through the socket?
我目前正在构建一个新的应用程序,在基本层面上,它允许用户添加需要完成的任务,然后让不同的用户组选择任务并完成它。
之前,我接手构建了一个用 NodeJS 和 Socket.io 编写的实时聊天应用程序,所有消息都通过套接字连接 posted 到数据库。
在当前的应用程序中,我正在做同样的事情,但我在想,如果通过路由 post 将信息发送到数据库会更好,然后在成功时发出套接字事件以更新可用任务列表。
我只是在寻求建议,你们会怎么做?通过路由或套接字将信息提交到数据库?
如果您按照路线进行操作,那么您可以确定更新是否有效。默认情况下,套接字不保证成功或失败。
但是你可以通过编程来实现。例如
客户端: 发送数据
socket.emit('update', data); // send data
服务器:接收数据并发回关于操作是否成功的更新
socket.on('update', function(data){
findOrUpdateOrWhateverAsync(function(err){
if(!err) socket.emit('update', null); // send back a "null" on success
else socket.emit('update', err.message); // or send back error message
});
});
客户端:在error/success
接收更新
socket.on('update', function(err){
if(err) alert(err);
});
我目前正在构建一个新的应用程序,在基本层面上,它允许用户添加需要完成的任务,然后让不同的用户组选择任务并完成它。
之前,我接手构建了一个用 NodeJS 和 Socket.io 编写的实时聊天应用程序,所有消息都通过套接字连接 posted 到数据库。
在当前的应用程序中,我正在做同样的事情,但我在想,如果通过路由 post 将信息发送到数据库会更好,然后在成功时发出套接字事件以更新可用任务列表。
我只是在寻求建议,你们会怎么做?通过路由或套接字将信息提交到数据库?
如果您按照路线进行操作,那么您可以确定更新是否有效。默认情况下,套接字不保证成功或失败。
但是你可以通过编程来实现。例如
客户端: 发送数据
socket.emit('update', data); // send data
服务器:接收数据并发回关于操作是否成功的更新
socket.on('update', function(data){
findOrUpdateOrWhateverAsync(function(err){
if(!err) socket.emit('update', null); // send back a "null" on success
else socket.emit('update', err.message); // or send back error message
});
});
客户端:在error/success
接收更新socket.on('update', function(err){
if(err) alert(err);
});