Node.js Node JS&;io建议-通过路由或通过套接字将信息发布到数据库更好吗?

Node.js Node JS&;io建议-通过路由或通过套接字将信息发布到数据库更好吗?,node.js,sockets,socket.io,express-4,Node.js,Sockets,Socket.io,Express 4,我目前正在构建一个新的应用程序,在基本层面上,它允许用户添加需要完成的任务,然后让不同的用户组选择并完成任务 在此之前,我负责构建一个用NodeJS和Socket.io编写的实时聊天应用程序,在这个应用程序上,所有消息都通过Socket连接发布到数据库 在当前的应用程序中,我也在做同样的事情,但我在想,是否最好通过路由将信息发布到数据库,然后在成功时发出套接字事件来更新可用任务的列表 我只是想寻求建议,你们怎么做?通过路由或通过套接字将信息提交到数据库?如果您按照路由的方式进行,则可以确定更新是

我目前正在构建一个新的应用程序,在基本层面上,它允许用户添加需要完成的任务,然后让不同的用户组选择并完成任务

在此之前,我负责构建一个用NodeJS和Socket.io编写的实时聊天应用程序,在这个应用程序上,所有消息都通过Socket连接发布到数据库

在当前的应用程序中,我也在做同样的事情,但我在想,是否最好通过路由将信息发布到数据库,然后在成功时发出套接字事件来更新可用任务的列表


我只是想寻求建议,你们怎么做?通过路由或通过套接字将信息提交到数据库?

如果您按照路由的方式进行,则可以确定更新是否有效。默认情况下,套接字不能保证成功或失败

但你可以通过编程来实现。例如

客户端:发送数据

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
    });
});
客户端:接收错误/成功更新

socket.on('update', function(err){
    if(err) alert(err);
});