我们希望将WAMP协议用于我的服务器客户端应用程序。我发现Autobahn-js实现了Web应用程序消息传递协议(WAMP)。 我们希望使用QML来设计前端(瘦客户端)并定位Android,IOS,Windows Mobile和桌面平台。由于用Javascript编写的Autobahn-js,我认为它会起作用。但不幸的是,它没有。
以下是我做的:
我已经从Github下载了Autobahn Js库。
我已将所有文件都包含在我的QML项目中。
import" 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中使用autobahn?这实际上使node.js函数在qml中运行。
很难有C ++实现,我不相信在qml中使用C ++包装器,因为它依赖于像Boost这样的第三方。
是否可以在QML中创建依赖于node.js函数的JS库?请告诉我。感谢
仅供参考:我使用Crossbar.io作为路由器
答案 0 :(得分:0)
您有四个选项
QProcess
但是,如果您打算使用的协议具有C / C ++实现,那么使用它可能是最好的方法。
答案 1 :(得分:0)
尝试使用AutobahnJS的browser version,而不是NodeJS版本。
如果您只需要在QML中使用WAMP,请不要为C ++ WAMP库(更难)而烦恼。
如果你想直接与你的C ++内容(在Qt中)谈论WAMP,那么有多个C ++ WAMP client libraries - 但是,我不确定它们与Qt的融合程度如何。例如,AutobahnC ++基于Boost / ASIO。
然而,最近有一个post触及这个......