0

我必须为客户端开发一个带有 HTML 5 和 Javascript 的 Web 应用程序。但是我需要使用提供客户端本机库(.dll/.so)的功能来使用 C/C++ 在它的机器上处理一些数据。

我喜欢用 Javascript 编写自己的 API 来访问本机库,例如NodeJS 的插件定义,但这些插件只能从 NodeJS(服务器端)访问。还有一个完善的 NPAPI,但似乎 Google 的 PPAPI 想要替换它:我无法决定其中任何一个。

有没有类似于 NodeJS 的客户端插件,让我只关注 C++、Javascript 和 HTML 5?

谢谢。

4

1 回答 1

1

不是一般意义上的。允许使用 node.js 的插件,因为代码的作者和运行它的人之间存在隐含的信任关系。(事实上​​,他们通常是同一个人。)在网络浏览器中,不存在这样的信任——通过浏览一个网站,你让编写该网站的人在你的系统上运行一些代码。由于您(可能)不完全信任它们,因此它们在 Javascript 中可以执行的操作仅限于一组已知的安全操作。加载 DLL并不在该集合中。

正如 generalhenry 在评论中指出的那样,有一些项目,如emscripten将本机代码编译为 Javascript,或Google Native Client以在浏览器中运行沙盒本机代码,但这些技术仍然受到功能限制,而且还很不成熟。最终,您将需要接受在浏览器中运行的代码将受到限制的事实。

于 2013-03-22T04:05:01.693 回答