我正在尝试为交互式Web应用程序选择技术堆栈。
1)应用程序实际上是一个全屏板,包含许多相互作用的矩形对象。
2)一个主要用户(演示者)能够向棋盘添加新对象,并确定它们的位置,角度,面朝和大小。一个理想的方法是,如果用户可以在棋盘上的空白区域拖动一个简单的左键单击选择,同时能够在按下右键单击期间旋转该选择。释放鼠标后,矩形对象将在选定的表面上绘制。
3)演示者可以调整对象的大小,旋转它们并通过拖动来移动对象(如果也按下右键,则可以在移动时旋转它们)。如果我可以测量物体在过程中移动了多少(以任意测量单位),那将是非常好的。
4)许多观察员/用户/客户可以加入示范室并观察:
我希望他们实时观察物体的移动。如果没有,
我希望他们可以看到将对象从之前的位置转换到新位置的动画。如果没有,
如果物体瞬间移动到新位置,那将是可以接受的。
5)支持的观察员数量:
我需要无缝支持50。
我想支持最多一千个。
请建议技术堆栈在启动时使用便宜的非专用服务器支持的任意数字(但稍后可以选择升级以及如何根据支持的客户端数量进行扩展)。
7)它必须能够在没有安装Flash或Java的情况下工作(这实际上使它们不在等式中)。
1)可伸缩性(响应式设计)及其如何影响画布(“分辨率”应保持不变,像素大小应调整,同时保持16:9的相同宽高比)
2)移动设备支持 - 能够在较新的移动设备和平板电脑上合理地工作(可能没有一些先进的方面)
3)观察者可以选择同时移动对象(仅在客户端,在他们的浏览器中),同时能够恢复(同步)到实际(当前)状态。
我想到的第一件事是:
HTML5 Canvas和一个用于在其上绘制和操作对象的JS库(fabricjs似乎很有希望)
带有合适框架的node.js(Meteor目前似乎正在全力以赴,并且能够处理与大量客户的实时同步)
但我对这两者都不熟悉,也无法判断它们是否是开发此项目的最佳筹码。
你有什么建议吗?我有jQuery / PHP / AJAX的经验,并没有在他们之外冒险,但没有任何疑虑学习新的东西,特别是如果它是相当现代和有趣的。
PS:我对如何标记这个问题感到很遗憾,所以请您随意标记,但是您认为合适。
答案 0 :(得分:1)
使用可用来源CollabSketch Vaadin plugin的https://github.com/Mazku/collabsketch_vaadin here可能会给您一个起点。 Vaadin提供推送和移动支持,所需的技术知识可能是Java + Vaadin(GWT)+ Maven + Tomcat