2014-05-02 5 views
6

Ich arbeite an einer App, die Websocket benötigt, um mit meinem Server zu kommunizieren. Ich arbeite mit Phonegap, damit ich den gesamten Code zuerst in meinem Browser ausführen kann. Seit Android 4.4 Websockets native Unterstützung in Android bekam so sollte es funktionieren ... Ich habe die Websocket mit diesem Code implementiert:Websocket auf Android 4.4 mit Phonegap

$(document).ready(function() { 
    console.log('websocketready'); 
    startwebsocket(); 
}); 
var ws; 

function startwebsocket() { 
    ws = new WebSocket('ws://192.168.1.131:8080/.....'); 

    ws.onopen = function() { 
     console.log("Websocket Ready!!"); 
    } 
    ws.onclose = function() { 
     console.log("Websocket Closed!!"); 
    } 
    ws.onerror = function() { 
     console.log("Websocket Error!!"); 
    } 
    ws.onmessage = function (data) { 
     console.log('getvalue : ' + data.data); 
    } 
} 

function sendMessage(temp) { 
    ws.send(temp); 
} 

Dies ist nur funktioniert gut in meinem Browser (Chrome und Firefox). Aber wenn ich die App mit Phonegap auf meinem Nexus 5 mit Android 4.4.2 starte, bekomme ich: 'WebSocket-Verbindung zu' ws: //192.168.1.131: 8080/..... 'fehlgeschlagen: Unerwarteter Antwortcode: 403 '

Haben Sie Vorschläge, was ich hätte tun können oder was ich falsch gemacht habe?

+0

versuchen Sie res.header ('Access-Control-Allow-Origin', "*") helfen; in Ihrer Funktion im Server. – rishal

+0

Hallo danke für deine Antwort, aber ich verstehe nicht, welches Objekt 'res' sein sollte? – TobiasW

+0

Entschuldigung, ich dachte, Sie benutzen node.js als Ihren Server. Sie müssen access-control-allow-origin in Ihrem Server hinzufügen, damit Ihr mobiles Gerät mit dem Socket kommunizieren kann. – rishal

Antwort

0

Geben Sie 192.168.1.131 als autorisierten Ursprung für Cordova an?

Vielleicht sollten Sie versuchen, das zu Ihrer config.xml hinzu:

<access origin="192.168.1.131" /> 

Werfen Sie einen Blick here für weitere Informationen.

Hope that :)

Verwandte Themen