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

标签 node.js sockets socket.io express-4

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

之前,我接手构建了一个用 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);
});

关于node.js - Node JS & Socket.io 建议 - 通过路由还是通过套接字将信息发布到数据库更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837447/

相关文章:

javascript - 如何在 watch 模式下 sails (开发中)

laravel-5 - laravel 对于实时应用程序有什么好处?

jquery - 递归删除多个 socket.io 监听器

套接字和文件描述符魔术

VB.net TCPListner 窗口服务

java - 获取已连接网络设备的唯一 ID

express - 继续获取和发布/socket.io/?EIO=3&transport=polling&t=

node.js - nodejs - JSON.stringify 错误对象

javascript - 安装带有帮助文件的 Node 模块会导致 'cannot find module' 错误

node.js - 在 root 模式下设置 Node-red 密码