2013-04-01 4 views
2

Websocket을 사용하여 내 서버 측 코드와 통신하는 간단한 Firefox 모바일 추가 기능을 작성하려고합니다.Firefox 용 Android Android Addon을 사용하는 방법

데스크톱 파이어 폭스 애드온에서 작동하는 코드가 있지만 파이어 폭스 모바일에 문제가 있습니다.

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 및 웹 소켓을 모두 시도했지만, 둘 다 나에게 다음과 유사한 오류 제공 :

E/GeckoConsole(15569): [JavaScript Error: "ReferenceError: MozWebSocket is not defined" {file: "resource://gre/modules/XPIProvider.jsm -> jar:file:///data/data/org.mozilla.firefox/files/mozilla/sq4c77hi.default/extensions/[email protected]!/bootstrap.js" line: 20}]

사람은 내가 가져 오거나 웹 소켓을 참조 할 수 있도록 할 필요가 뭔지 알아? websocket을 사용하여 내 서버 사이드 코드로 파이어 폭스 Android Addon에서 데이터를주고 받고 싶습니다. 어떤 제안?

매우 비슷한 코드로 Firefox Desktop Addon에서이 설정을 실행하고 있기 때문에 혼란 스럽습니다.

도움을 주시면 감사하겠습니다.

+0

@apsillers을 시도하고 나는 온라인으로 검색하고 MozWebSocket를 사용하여 제안하고 내가 노력 다른, 그래서 그것은 나에게 같은 오류를했다. 둘 다 여전히 작동하지 않고 나와 동일한 referenceError를 제공합니다. – Young

답변

1

추가 기능 SDK를 사용하고 있습니까? 이 코드는 어느 파일에 저장됩니까?

첫째, 모질라 않은 접두사 'MozWebsocket는 얼마 전에 웹 소켓합니다 :

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

이 ... 그러나 웹 소켓 API를 실제로 웹 문서에서만 사용할 수 있습니다. 페이지에서 자세한 내용

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

: 내가 과거에 doen 한 나는 배경에서 문서를로드하고 작업자 페이지에서 웹 소켓 서버에 연결 페이지 노동자 API를 사용한 적이있다 - 노동자 API : 우리는 애드온 개발자보다 직접적으로 HTML5 API를 공개 할 계획이 향후

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

.

+0

빠른 응답을 보내 주셔서 감사합니다. 내가 겪고있는 문제는 Firefox Mobile Addon에서 작동하도록 WebSocket을 얻는 것입니다. Fennec을 사용해 보았고 지금은 Firefox Android를 사용하고 있습니다. 그러나 그들 중 누구도 나를 위해 일하지 않습니다. 짧은 코드는 [github에 대한 링크] (https://bitbucket.org/ykim320/kayo)에 있습니다. 데스크탑 파이어 폭스 확장 기능이 정상적으로 작동합니다. 하지만 모바일 버전의 애드온을 사용하여 메시지를 보내고 서버에 연결하는 데 문제가 있습니다. 어쨌든 파이어 폭스 모바일 애드온을 사용하여 서버에 접속할 수 있다면 어떤 조언도 받으실 수 있습니다. 다시 감사합니다. – Young

+0

가능하면이 파이어 폭스 모바일 애드온으로 취할 수있는 방향을 알려주십시오. – Young

2

은 다음 해결책을 내가 웹 소켓을 시도

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

이 기능은 작동하지만 Firefox를 시작할 때 이것을 호출하면 컨트롤러가 준비되지 않았다는 오류가 표시됩니다. 이는 준비가되지 않았기 때문입니다. 그래서 Promise와 setTimeout을 사용하여 성공적으로로드 될 때까지 재 시도합니다. –

관련 문제