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

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. 您实际得到的结果?

臣妾做不到啊!!!

放肆疯狂,委婉洒脱。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

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

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

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

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

这是打算要自己实现吗?

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

先得分析一下问题吧

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

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

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

就想到了这些。

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

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

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

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

3年前 评论

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

3年前 评论

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