Node.js白板应用程序的客户端或服务器端HTML5canvas渲染?

我在想一个小白板Web应用程序将是一个很好的方式来提高我的node.js和JavaScript技能。 我在网上看过几个,这对于这种堆栈来说似乎是理想的。

不过花点时间思考一下,我想知道在这种Web应用程序中,客户端和服务器的angular色。 在节点canvas上陷入困境,我变得更加困惑。 什么,具体来说,客户端和服务器应负责?

如果服务器能够渲染到canvas上,是否应接受并validation来自客户端的input,然后通过socket.io将其广播给所有其他连接的用户? 通过这种方式,服务器保持一种主要的 -canvas元素。 一旦有新用户连接,服务器只需将其客户端的canvas推出即可 – 随时随地绘制所有画面。

任何有关实施的具体或哲学的指导,赞赏。

谢谢!

我写了http://draw.2x.io ,它使用node-canvas(之前是我自己写的node-cairo)和socket.io。

我devise我的应用程序的方式,客户端基本上是从用户input的所有笔画生成。 这些又由一个canvas抽象处理,它支持我自己定义的操作和参数的一个子集。 如果这个图层接受绘画模块产生的任何input,它们也通过socket.io发送到服务器。

在服务器上,我有相同types的canvas层包装节点canvas。 这样就可以将用户的input复制到内存中,最终可以将状态图像发送给新客户端。 在此之后,笔画将(等待服务器应用程序的参数/上下文validation)发布给其他连接的客户端,这将重复与上述相同的过程。

我工作的公司使用node.js(但不使用node-canvas)和socket.io实现了白板应用程序。 不幸的是,我不能给你的代码,甚至一个网站,因为它还没有被释放。

你的实现看起来非常相似。 客户端连接到我们的服务器,并通过socket.io将白板绘制到(JSON数据w /(x,y)坐标)时更新服务器。 然后,服务器更新其余的客户端,并保留所有(x,y)坐标的副本,以便join的新客户端可以查看已经绘制的内容。

祝你的应用程序好运。 最近我一直在用node.js编程,而男孩我喜欢它。

这是一个用javascript / html5编写的多用户白板教程,所有源代码均可用: http : //www.unionplatform.com/? page_id=2762

它不是服务器端的节点,但是如果要将其调整到节点后端,则客户端代码应该仍然有用。