如何使用Websocket for Firefox Android Addon

时间:2013-04-01 12:33:21

标签: javascript firefox-addon firefox-addon-sdk fennec

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

我的代码适用于Desktop Firefox Addon,但我在使用Firefox移动版时遇到了困难。

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错误:“ReferenceError:未定义MozWebSocket”{file:“resource://gre/modules/XPIProvider.jsm - > jar: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桌面插件上运行此设置,代码非常相似。

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:2)

尝试下一个解决方案

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

答案 1 :(得分:1)

您使用的是附加SDK吗?这段代码进入哪个文件?

首先,Mozilla'未加前缀'的MozWebsocket前往Websocket:

https://www.evernote.com/shard/s1/sh/59230d89-52f6-4f23-81de-75ab88f38c22/f9f1c0c64959ee44bdc833707efe10a9

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

https://github.com/canuckistani/Jetpack-Websocket-Example

有关页面工作者api的更多信息:

https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/page-worker.html

将来我们计划将HTML5 apis直接暴露给附加开发人员。