交互式Web应用程序的技术堆栈和最佳实践

时间:2013-09-17 11:59:10

标签: web-applications

我正在尝试为交互式Web应用程序选择技术堆栈。

项目要求:

1)应用程序实际上是一个全屏板,包含许多相互作用的矩形对象。

2)一个主要用户(演示者)能够向棋盘添加新对象,并确定它们的位置,角度,面朝和大小。一个理想的方法是,如果用户可以在棋盘上的空白区域拖动一个简单的左键单击选择,同时能够在按下右键单击期间旋转该选择。释放鼠标后,矩形对象将在选定的表面上绘制。

3)演示者可以调整对象的大小,旋转它们并通过拖动来移动对象(如果也按下右键,则可以在移动时旋转它们)。如果我可以测量物体在过程中移动了多少(以任意测量单位),那将是非常好的。

4)许多观察员/用户/客户可以加入示范室并观察:

  • 我希望他们实时观察物体的移动。如果没有,

  • 我希望他们可以看到将对象从之前的位置转换到新位置的动画。如果没有,

  • 如果物体瞬间移动到新位置,那将是可以接受的。

5)支持的观察员数量:

  • 我需要无缝支持50。

  • 我想支持最多一千个。

  • 请建议技术堆栈在启动时使用便宜的非专用服务器支持的任意数字(但稍后可以选择升级以及如何根据支持的客户端数量进行扩展)。

6)示威者可以提名另一个用户作为“助手示威者”并获得完全特权,但是具有独立管辖权(不能移动示威者的对象,只能添加/移动/删除他自己的对象)

7)它必须能够在没有安装Flash或Java的情况下工作(这实际上使它们不在等式中)。

奖励积分:

1)可伸缩性(响应式设计)及其如何影响画布(“分辨率”应保持不变,像素大小应调整,同时保持16:9的相同宽高比)

2)移动设备支持 - 能够在较新的移动设备和平板电脑上合理地工作(可能没有一些先进的方面)

3)观察者可以选择同时移动对象(仅在客户端,在他们的浏览器中),同时能够恢复(同步)到实际(当前)状态。

我想到了什么:

我想到的第一件事是:

  • HTML5 Canvas和一个用于在其上绘制和操作对象的JS库(fabricjs似乎很有希望)

  • 带有合适框架的node.js(Meteor目前似乎正在全力以赴,并且能够处理与大量客户的实时同步)

但我对这两者都不熟悉,也无法判断它们是否是开发此项目的最佳筹码。

你有什么建议吗?我有jQuery / PHP / AJAX的经验,并没有在他们之外冒险,但没有任何疑虑学习新的东西,特别是如果它是相当现代和有趣的。

PS:我对如何标记这个问题感到很遗憾,所以请您随意标记,但是您认为合适。

1 个答案:

答案 0 :(得分:1)

使用可用来源CollabSketch Vaadin pluginhttps://github.com/Mazku/collabsketch_vaadin here可能会给您一个起点。 Vaadin提供推送和移动支持,所需的技术知识可能是Java + Vaadin(GWT)+ Maven + Tomcat