Javascript 如何为Firefox Android插件使用Websocket

Javascript 如何为Firefox Android插件使用Websocket,javascript,firefox-addon,firefox-addon-sdk,fennec,Javascript,Firefox Addon,Firefox Addon Sdk,Fennec,我正在尝试编写一个简单的firefox移动插件,它使用Websocket与我的服务器端代码进行对话 我的代码用于桌面Firefox插件,但我在Firefox mobile插件上遇到了困难 function connectToServer(aWindow) { var ws = new MozWebSocket("ws://ipaddress:8887"); // LINE 20 // var ws = new WebSocket("ws://ipaddress:8887"); ws.onop

我正在尝试编写一个简单的firefox移动插件,它使用Websocket与我的服务器端代码进行对话

我的代码用于桌面Firefox插件,但我在Firefox mobile插件上遇到了困难

function connectToServer(aWindow) {

var ws = new MozWebSocket("ws://ipaddress:8887");  // LINE 20
// var ws = new WebSocket("ws://ipaddress:8887");
ws.onopen = function() {
    showToastMsg(aWindow, 'Sending');
    ws.send('data');
}   
ws.onmessage = function (evt) { 
    showToastMsg(aWindow, 'Display')
};  
ws.onclose = function() { 
};  
我已经尝试过MozWebSocket和WebSocket,但它们都会给我类似以下的错误:

E/GeckoConsole(15569):[JavaScript错误:“引用错误:未定义MozWebSocket”{file:resource://gre/modules/XPIProvider.jsm ->罐子:file:///data/data/org.mozilla.firefox/files/mozilla/sq4c77hi.default/extensions/view-source@mydomain.org.xpi!/bootstrap.js“line:20}]

有人知道我需要导入什么或做什么才能引用WebSocket吗? 我只想用我的服务器端代码使用websocket从我的Firefox Android插件来回发送数据。有什么建议吗

我只是感到困惑,因为我在Firefox桌面插件上运行这个设置,代码非常相似


非常感谢您的帮助,谢谢

您正在使用附加SDK吗?此代码将进入哪个文件

首先,Mozilla不久前将MozWebsocket“取消前缀”添加到Websocket:

…但是Websocket api仅在实际的web文档中可用。我过去所做的是使用页面工作者api在后台加载文档,并从工作者页面连接到Websocket服务器:

有关页面worker api的更多信息:

将来,我们计划更直接地向插件开发人员公开HTML5API。

尝试下一个解决方案

var ws = new Services.appShell.hiddenDOMWindow.WebSocket("ws://ipaddress:8887");

@apsillers我试过WebSocket,它给了我同样的错误,所以我在网上搜索,它建议使用MozWebSocket,这是我试过的另一个。这两个仍然不起作用,并且给了我相同的参考错误。谢谢你的快速回复。我遇到的问题是如何让WebSocket在Firefox移动插件上工作,我曾尝试使用Fennec,现在只使用Firefox Android。但是没有一个适合我。我有一个简短的代码写在。桌面firefox扩展工作正常。但我无法让手机版的插件发送消息并连接到服务器。如果你有任何方式,你可以连接到服务器使用firefox移动插件任何指针将不胜感激。再次感谢。如果可能的话,你能帮我介绍一下这个firefox移动插件的使用方法吗?这是可行的,但是如果在启动firefox时调用这个插件,会出现一个关于控制器未准备好的错误,我想这是因为窗口未准备好。因此,我使用Promise和setTimeout重试,直到它成功加载。