如何优雅的实现多人在线编辑?

1. 运行环境

LNMP

1). 当前使用的 Laravel 版本?

8.75

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.3

php-fpm 版本:7.3

3). 当前系统

CentOS 8

4). 业务环境

开发环境

5). 相关软件版本

dcat-admin

2. 问题描述?

需求下来 ,要求实现多用户同时编辑表单,有各个输入框,有长文本、短文本

3. 您期望得到的结果?

完美搞定!

4. 您实际得到的结果?

臣妾做不到啊!!!

放肆疯狂,委婉洒脱。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

websocket 实现,具体请参考 企业微信的 「多人编辑文档」

2年前 评论
bigdaxin (楼主) 2年前
MArtian (作者) 2年前
讨论数量: 15

websocket 实现,具体请参考 企业微信的 「多人编辑文档」

2年前 评论
bigdaxin (楼主) 2年前
MArtian (作者) 2年前

这是打算要自己实现吗?

2年前 评论
bigdaxin (楼主) 2年前
ㅤㅤ (作者) 2年前
bigdaxin (楼主) 2年前

先得分析一下问题吧

  1. 同一个输入框,两个人同时编辑会怎么样呢?
  2. 还是那同一个输入框,一个用户编辑完成了,另一个用户的编辑会怎么样呢?是打断正在的,还时提示有人提交了内容?
  3. 长文本的编辑应该比较难,领导写了两个标题,我写其中之一的内容,怎么让领导看见我的内容又不影响领导写标题?
  4. 另一个同事写另外一个标题的内容,他发现我有一个错别字的时候该怎么办?

我觉得要解决问题可以从两方面入手

  1. 同时编辑必然涉及到内容的分发,这个就需要有一个类似 pub/sub 的功能
  2. 长文本的内容比较这个事,git比较擅长,可以找一个封装git的模块来做

就想到了这些。

2年前 评论
bigdaxin (楼主) 2年前
bigdaxin (楼主) 2年前
MArtian 2年前

这是一个两亿成本的方案 :joy:

2年前 评论
bigdaxin (楼主) 2年前

公司目前在线协同用的是企业石墨文档,的确强大,实时性特别强,比较喜欢独立视图和单元格历史,每次谁不小心覆盖了可以马上找到真凶:joy:

2年前 评论

github.com/whitexiong/lavuei
workerman 的 websocket 实现长链接前端使用差分算法控制忙就没怎么更新了。有帮助就 start 下吧 :smile:

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!