【发布时间】:2017-03-17 13:53:44
【问题描述】:
我们想在我的服务器客户端应用程序中使用 WAMP 协议。我找到了实现 Web 应用程序消息传递协议 (WAMP) 的 Autobahn-js。 我们想使用 QML 来设计前端(瘦客户端)并针对 Android、IOS、Windows Mobile 和桌面平台。由于 Autobahn-js 是用 Javascript 编写的,我认为它会起作用。但不幸的是,它没有。
这是我做的:
我已经从 Github 下载了 Autobahn Js 库。
我已将所有文件包含在我的 QML 项目中。
将“lib/autobahn.js”导入为 AutoBhan
然后出现错误 qrc:/lib/autobahn.js:15: ReferenceError: require 未定义
通过谷歌搜索,我了解到“require() 函数是 node.js 的核心函数,它是引擎的一部分。它不是特定于语言的东西,就像基于浏览器的 Javascript 中的窗口对象不是什么东西一样在 Javascript 语言中。node.js 实际上是:一个服务器端的 JavaScript 引擎,它执行 JavaScript 文件。它不是一个可以加载到像 Qt 之类的另一个引擎中的框架。 source.
这是我的问题:
如何制作/构建 Autobahn Js 库,以便可以在 qml 中使用高速公路?这实际上是让 node.js 函数在 qml 中运行。
虽然有 C++ 实现,但我不相信在 qml 中使用 C++ 包装器,因为它依赖于 Boost 等第三方。
是否可以在 QML 中制作依赖于 node.js 函数的 JS 库?请告诉我。谢谢
仅供参考:我使用Crossbar.io 作为路由器
【问题讨论】:
-
AutobahnJS 不依赖于任何特定于 Node.js 的东西 - 但它是为在浏览器或 Node.js 中使用而开发的。没有考虑拥有自己的 JavaScript 引擎的 QML 环境。
标签: javascript node.js qml autobahn autobahnjs