我正在尝试创建一个服务,允许超过 2 个用户实时并发修改画布。我一直在探索最好的方法背后的文献,并没有发现很多问题。
到目前为止,我已经找到了使用canvas.toDataUrl()
. 这里的问题是,当只有很少的像素发生变化时(也就是说,当另一个用户修改它时)重绘整个画布似乎相当低效。
我真的不知道从哪里开始这个特定的项目,并希望得到一些帮助。
不会超过 40 个用户同时查看画布。
我正在尝试创建一个服务,允许超过 2 个用户实时并发修改画布。我一直在探索最好的方法背后的文献,并没有发现很多问题。
到目前为止,我已经找到了使用canvas.toDataUrl()
. 这里的问题是,当只有很少的像素发生变化时(也就是说,当另一个用户修改它时)重绘整个画布似乎相当低效。
我真的不知道从哪里开始这个特定的项目,并希望得到一些帮助。
不会超过 40 个用户同时查看画布。
取决于用户绘制的内容和方式。
如果他们只能绘制/操作一组预定义的基元,例如软件框图,那么您可以只发送描述这些基元及其位置的 JSON 序列化数据列表。
如果绘图只是像http://intridea.github.io/sketch.js/这样的像素位图,那么您可以在位图中进行绘图并在 mouseup 上广播该位图序列化为 PNG 左右。
要将其发布给所有用户,我会做一些基于 socket.io 的事情。例如,Node.js 有很多关于如何进行基于 socket.io 的聊天的示例。聊天在概念上非常接近您想要实现的目标。