2016-03-28 23 views
2

Ich versuche, eine Chrome App UDP verwenden, aber ich kann nicht einfach UDP-Erstellung Socket-Prozess übergeben. Dies ist der Fehler, den ich im Inspektorfenster erhalten:Eigenschaft 'UDP' von undefined kann nicht gelesen werden

sockets.udp.create: TypeError: Cannot read property 'udp' of undefined 
at Object.callback 

Der Fehler in dieser Zeile angezeigt wird:

chrome.sockets.udp.create({}, function(.... 

Die manifest.json ist dies:

{ 
"manifest_version": 2, 

"name"    : "My App", 
"description"  : "My App Description", 
"version"   : "1.0", 

"icons"  : { 
         "16" : "icons/wl16.png", 
         "48" : "icons/wl48.png", 
         "128" : "icons/wl128.png" 
}, 

"app" : { 
    "background" : { 
     "scripts": ["main.js"] 
    } 
}, 

"sockets" : { 
    "udp" : { 
      "send" : ["*"], 
      "bind" : ["*"] 
    } 
} 

Der Haupt. js ist wie folgt:

chrome.app.runtime.onLaunched.addListener(function() { 
    console.log('launched') 
    sendpack() 
}) 

function sendpack() { 
    // Create the Socket 
    chrome.sockets.udp.create({}, function(socketInfo) { 
     // The socket is created, now we can send some data 
     var socketId = socketInfo.socketId; 

     chrome.socket.udp.bind(socketId, '127.0.0.1', 1345, function(result){ 
      console.log('chrome.socket.bind: result = ' + result.toString()); 
     }); 

     var arrayBuffer=new ArrayBuffer(2); 
     arrayBuffer[0]=65; 
     arrayBuffer[1]=66; 
     chrome.sockets.udp.send(socketId, arrayBuffer,'127.0.0.1', 1337,function(sendInfo) { 
      console.log("sent " + sendInfo.bytesSent); 
     }); 
    }); 
} 

ich kopiert alles aus Chrome-Beispielen, aber auf den Beispielen funktioniert es, auf meiner App nicht.

Wenn ich auf der Konsole, um den Inhalt des Objekts ‚chrome.sockets.udp‘ Druck zeigt es ein gültiges Objekt mit ‚create‘ Methode darin aufgeführt:

Object {onReceive: Event, onReceiveError: Event} 
     create: function() 

Was könnte falsch sein?

Antwort

0

ich den Fehler gefunden hatte der bind Anruf schlecht Objektname:

chrome.socket.udp.bind 

es in Plural sein sollte "Steckdosen"

chrome.sockets.udp.bind 

ich aus der auch fälschlicherweise der Stack-Trace lesen, unten, nicht von oben.

Verwandte Themen