node.js - 如何为多用户应用程序构建 node.js / react.js 后端
问题描述
嘿伙计们,这些年来我终于可以进入 node.js 和 react.js 了,所以我是一个完全的初学者。
我的第一个项目是将用于我们生产的时间预订系统从当前的 Qt C++ 应用程序迁移到 Web 应用程序。
此时最大的问题是决定如何构建后端。
应用程序需要在客户端之间通过全双工通信来处理多个并发用户。
关闭示例将是像 Trello 这样的系统。所以一个协作系统,多个用户能够移动任务。一旦用户将任务从一个位置移动到另一个位置,我必须立即为每个当前登录的用户重新组织任务。所以我可以保证每个人在任何时候都是最新的。
您将如何构建它以及哪些库最适合这种情况?
我希望你明白我想说什么。
打招呼
解决方案
使用 websocket 保持服务器和客户端的联系。为防止操作冲突,您需要
- 当用户开始编辑/移动时锁定任务/资源,并通知其他客户端它已被锁定。
- 将结果写入 db/nosql。
- 通知所有其他用户客户端更改结果并获得 ACK 响应。
- 释放锁并通知所有客户端。
为了使过程顺利进行,在获得第一个 ACK 时释放锁。带有时间戳(单调时间)的更改日志可能有助于防止冲突。
此外,Electron(基于 NodeJs)适用于构建客户端作为 Qt 的替代方案。
推荐阅读
- azure-active-directory - 为多个应用程序/环境配置 adal.js
- ruby - selenium/webdriver/firefox/binary.rb:134:in `path': 无法修改冻结字符串 (FrozenError)
- vue.js - Vue Slider Component - 同时启用拖尾和点击更新
- c# - 在 dotnet-core 控制台应用程序和常规 winforms 应用程序之间进行通信的最佳方式
- java - 我如何使用 compareTo 来迭代用户输入
- node.js - 错误:EPERM:不允许操作,运行 npm publish 时取消链接
- python - 项目的 .py 文件位于 virtualenvwrapper 中的什么位置?
- python - Tensorflow:根据输入创建向量
- java - PriorityQueue 的顺序不对
- c - 如何让我的代码工作?循环在不应该这样做时以某种方式终止