富阳有没有做网站的,python18,深圳市建设交易中心,在线制作图片加闪字需求
文档编辑类型的需求#xff0c;左侧是菜单栏#xff0c;右侧是内容块#xff0c;现在的需求时#xff0c;如果多人同时编辑这个方案#xff0c;当添加章节/调整章节顺序/删除章节时#xff0c;其他用户能够及时感知到。
解决方案调研
前端轮询
最简单的方案左侧是菜单栏右侧是内容块现在的需求时如果多人同时编辑这个方案当添加章节/调整章节顺序/删除章节时其他用户能够及时感知到。
解决方案调研
前端轮询
最简单的方案前端定时调用后端接口使用短轮询或者长轮询都可以做到。麻烦的点可能在于后端如何判定两次轮询之间数据的变化是否应该推给前端。
websocket
websocket可以维持前后端的长连接实时同步各章节的更新情况不需要记录历史情况实时同步更新信号就可以。不过需要处理的连接逻辑可能会复杂一些。
EventSource
EventSource又称SSE(Server-Sent-Events),一种服务器端到客户端(浏览器)的单项消息推送方案它和轮询一样也是基于http请求来完成的。但是和轮询不一样的是它是服务器与客户端建立连接后服务器主动的向客户端进行数据推送。 EventSource只能实现服务端向客户端推送消息。
SSE 要求服务器与浏览器保持连接。对于不同的服务器软件来说所消耗的资源是不一样的。Apache 服务器每个连接就是一个线程如果要维持大量连接势必要消耗大量资源。Node 则是所有连接都使用同一个线程因此消耗的资源会小得多但是这要求每个连接不能包含很耗时的操作比如磁盘的 IO 读写。
问题
我们的诉求其实是能够让客户端接收到数据变更的消息感觉EventSource可以考虑一下。
但是对于java开发的应用来说EventSource的资源消耗感觉和websocket不相上下
如果读者有啥更好的解决方案可以评论告诉我。