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

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

臣妾做不到啊!!!

放肆疯狂,委婉洒脱。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论