Javascript 在QML JS中实例化类似WebSocket的浏览器

Javascript 在QML JS中实例化类似WebSocket的浏览器,javascript,qt,websocket,qml,faye,Javascript,Qt,Websocket,Qml,Faye,我有一个Qt/QML应用程序,我想用它连接到服务器。由于以下代码,Faye的JS客户端代码在Qt内失败: var WS = global.MozWebSocket || global.WebSocket; module.exports = { create: function(url, protocols, options) { if (typeof WS !== 'function') return null; return new WS(url); } }; …在

我有一个Qt/QML应用程序,我想用它连接到服务器。由于以下代码,Faye的JS客户端代码在Qt内失败:

var WS = global.MozWebSocket || global.WebSocket;

module.exports = {
  create: function(url, protocols, options) {
    if (typeof WS !== 'function') return null;
    return new WS(url);
  }
};
…在QML中失败,因为默认情况下没有全局
WebSocket

QML有一个我可以实例化的脚本,但这并不能使它在JavaScript中可用

如何使用QML WebSocket将JS对象推入全局空间,以便在我将“qrc:/faye client.JS”作为faye导入时,那里的代码可以看到一个可用的全局
WebSocket
对象



编辑:虽然我认为协议兼容的垫片应该是可能的,允许QML使用为web浏览器WebSocket编写的代码,但我最终还是写了。

您可以使用
Qt.createQmlObject
Qt.createComponent
JS
中引用
WebSocket
对象。我会将js文件定义为一个单例文件,这样它在任何地方都可以访问。但无论如何,我认为HTML5中的
WebSocket
与QML中的
WebSocket
不同。@folibis真正重要的是底层WebSocket协议,即双方都实现的RFC。所以,实际上,我们可以说它们是一样的。是的,协议本身,我猜和html协议一样。但正如我在API级别看到的,它是完全不同的。您只需比较和即可。您可以使用
Qt.createQmlObject
Qt.createComponent
JS
中实例化
WebSocket
对象。我会将js文件定义为一个单例文件,这样它在任何地方都可以访问。但无论如何,我认为HTML5中的
WebSocket
与QML中的
WebSocket
不同。@folibis真正重要的是底层WebSocket协议,即双方都实现的RFC。所以,实际上,我们可以说它们是一样的。是的,协议本身,我猜和html协议一样。但正如我在API级别看到的,它是完全不同的。你可以比较一下。