如何让Autobahn-JS在QML中工作?



我们希望对我的服务器客户端应用程序使用 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:引用错误:需要 未定义

在谷歌搜索时,我开始知道"require()函数是node的核心功能.js它是引擎的一部分。它不是特定于语言的东西,就像基于浏览器的Javascript中的窗口对象不是Javascript语言中的东西一样。node.js实际上是:一个服务器端的JavaScript引擎,它执行JavaScript文件。它不是一个可以加载到另一个引擎(如Qt)中的框架。源。

这是我的问题:

  1. 如何制作/构建 Autobahn Js 库,以便我可以在 qml 中使用 autobahn?这实际上是在 qml 中运行 node.js 函数。

  2. 很难实现C++,我不相信在 qml 中使用 C++ 包装器,因为它依赖于像 Boost 这样的第三方。

  3. 是否可以在QML中制作依赖于节点.js函数的JS库?请让我知道。谢谢

仅供参考:我正在使用 Crossbar.io 作为路由器

您有四个选择

  1. 更改库,使其不依赖于任何特定于 NodeJS 的内容
  2. 扩展 QML JavaScript 引擎,使其提供特定于 nodejs 的扩展
  3. 通过QProcess运行 NodeJS
  4. 看看一些试图为嵌入nodejs提供C/C++接口
  5. 的项目

但是,如果您打算使用的协议具有 C/C++ 实现,则使用它可能是最好的方法。

尝试使用AutobahnJS的浏览器版本,而不是NodeJS版本。

如果你只需要QML中的WAMP,不要打扰C++WAMP库(更难)。

如果你想直接与你的C++的东西(在Qt中)谈论WAMP,有多个C++WAMP客户端库 - 但是,我不确定这些与Qt的融合程度如何。

但是,最近有一篇帖子涉及这一点..

相关内容

  • 没有找到相关文章

最新更新