HTML5/JS和websockets中的实时协作绘图白板?

Mic*_*ael 25 javascript html5 webkit canvas websocket

我正在努力为我的一些高级学生组建一个小型(ish)暑期学校项目,并正在研究如何做到最好和使用什么 - 希望这里有人可以指出我正确的方向.

我们感兴趣的是研究HTML5是否足以在其中创建实时协作绘图白板 - 纯粹通过使用没有插件的Web技术(所以CSS,HTML5/DOM和Javascript).我们最终要努力的是 - 例如,在教室的大屏幕上显示中央服务器上的在线画布/页面.然后我们的学生/用户将拿出他们的智能手机,在他们的移动浏览器中加载页面(我现在完全可以将其限制为webkit移动浏览器)并用触摸/手指在他们的屏幕上绘图(或者用鼠标在PC上绘图) - 猜测这并没有太大的区别)并且它会在每个人的实时更新 - 无论是在他们的屏幕上还是在教室的中央大屏幕上.

我猜测推送/获取请求对此来说太慢了 - 它可以通过websockets解决吗?有没有人有任何好的JS库可供推荐?

此外,理想(但学生更容易理解)架构的外观如何.假设你在一个clasroom中有30个并发用户 - 每个用户都会将websockets连接到服务器,服务器将所有请求汇集/组合成一个,然后返回组合文件(某种最小的JSON甚至只是坐标) )为每个连接的用户?

websockets和(我猜测)画布能够采取这个吗?所以一切看起来都很活泼?是否有类似jQuery的JS库可以让我们的生活变得更轻松 - 或者你认为它对于为期2周的暑期学校项目来说太复杂了吗?

col*_*ock 15

这是一个教程,描述如何使用javascript/html5/canvas创建多用户白板:

http://www.unionplatform.com/?page_id=2762

该示例使用名为"union platform"的协作框架和服务器.即使您决定推出自己的服务器和客户端框架,示例中的消息也应该让您了解如何构建代码.

对于websocket与彗星的苹果对苹果速度比较,请参阅:http://www.unionplatform.com/? page_id = 2954

在我的测试中,对WebSocket的基本ping通常比ping over http快两倍.websocket和coment都足够快,可以创建一个协作白板.


bee*_*bug 5

对于网络方面的事情,尝试查看服务器的node.js以及客户端的socket.io.

至于绘图本身,一些流行的选择是加工,raphaelcakejs.

在实现方面,您可能希望了解网络游戏如何处理类似问题(gamedev.stackexchange.com可能很有用).

你要做的事情就像一个简单的自上而下的多人游戏一样,每个'玩家'在这种情况下都是学生指尖,而'水平'是画布.您需要更新服务器的位置以及它们是否"拍摄"(绘图).