2

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

我的代码适用于桌面 Firefox 插件,但我在使用 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" 行:20}]

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

我很困惑,因为我在 Firefox 桌面插件上运行了这个设置,代码非常相似。

任何帮助将不胜感激,谢谢!

4

2 回答 2

2

尝试下一个解决方案

var ws = new Services.appShell.hiddenDOMWindow.WebSocket("ws://ipaddress:8887");
于 2014-06-17T12:18:04.943 回答
1

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

首先,Mozilla 'un-prefixed' MozWebsocket 到 Websocket 前段时间:

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

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

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

有关 page-worker api 的更多信息:

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

未来我们计划将 HTML5 api 更直接地暴露给附加开发者。

于 2013-04-02T03:27:35.440 回答