1

我一直在使用 Javascript 库,即canvas-lib,我在服务器端使用 Node.JS/Socket.io,因此我可以在客户端之间传递事件。

我正在使用一种架构,其中一次只允许一个客户端控制画布,因为我正在制作一种由移动设备控制并显示在第二个(更大)屏幕上的“scratch”游戏。

您可以在此处查看架构图。

问题是,目前画布交互是在客户端上的一个脚本上完成的,这会导致一些问题:

  • 无法缩放画布
  • 没有统一的时限计数器
  • 我必须在外部屏幕上手动加载页面

我的目标是:

  • 让服务器将时间传递给两个设备(或屏幕)
  • 将画布加载到移动设备上并缩放到外部屏幕(在新连接上,并在移动设备连接后自动完成,或退出队列并进入当前活动状态)

为了实现这一点,我相信我必须让 canvas-lib 在节点上工作,那么由于 lib 还没有准备好,我该如何实现呢?如何将常规库变成 Node 库?

4

2 回答 2

1

我为使Fabric.js节点兼容所做的一些事情:

  • 使用在节点环境中提供画布 API 的node-canvas 。
  • 提供(或阻止)对库可能正在使用的任何 DOM 对象的访问。见jsdom
  • 删除对专有(仅限浏览器)API 的调用。请参阅非标准功能
  • 调整库的测试套件以在节点下运行(如果还没有)。见mochaqunit
  • 运行测试套件并确保一切仍按预期运行。
  • (可选)为方便起见创建 NPM 包。

或者您可以只使用已经为节点提供支持的库;)

于 2012-10-18T13:34:08.303 回答
1

出色地,

如果你正在开发一个专门为浏览器做东西的库,我看不出为它制作 Node 包的任何意义。

但是无论如何,请看一下Node Package Manager(简称 NPM),它会在您需要开发一些 Node 库时为您提供帮助。

于 2012-10-18T02:47:31.390 回答