【发布时间】:2014-02-18 12:42:16
【问题描述】:
我正在构建一个 Web 应用程序,它根据一个客户端所做的更改来更新每个客户端网页的 HTML 内容,为此我目前使用的是 Node.js 的 Socket.io。
我正在使用 HTML5 的 contenteditable 属性来允许客户端手动编辑我需要为其他客户端更新的 div 元素的内容。
我面临的问题是我不明白要通过 websockets 发送哪些数据来通知服务器,进而通知其他客户端所做的更改。
在添加和删除每个字符时发送整个 innerHTML 意味着通过 websocket 发送大量数据,这会导致性能差和速度慢。 发送附加数据不是一种选择,因为我们不知道数据在 div 元素中的哪个位置被附加、删除或编辑。
请注意,使用键盘并不是客户更改其网页副本的 HTML 内容的唯一方法。所需的 div 元素的数据会根据客户端使用 javascript 的几个活动而更改。
现在我需要知道如何通过 websockets 发送准确的更改信息,即使是最轻微的更改也能获得实时体验。
附:我不打算使用任何现有的模块,例如 Share.js,但欢迎提出建议。
【问题讨论】:
标签: javascript node.js websocket socket.io real-time