sockets udp google-chrome-app

Error de socket no conectado al usar chrome.sockets.udp



google-chrome-app (1)

Intenté ejecutar el siguiente código como una extensión de Chrome desempaquetada y obtuve el siguiente resultado en mi consola:

clicked sent undefined Error listening: net::ERR_SOCKET_NOT_CONNECTED

También estoy usando un software separado para crear un servidor UDP en el puerto 11111 y no recibe nada.

manifest.json

{ "name": "UDP Test", "description": "Testing UDP connection.", "version": "0.1", "app": { "background": { "scripts": ["background.js"] } }, "minimum_chrome_version": "33", "sockets": { "udp": { "send": "*" } } }

background.js

// On app launch chrome.app.runtime.onLaunched.addListener(function() { // Create window chrome.app.window.create(''window.html'', { ''bounds'': { ''width'': 400, ''height'': 500 } }); });

window.html

<html> <head> <button id="test">Run</button> <script src="network.js"></script> </head> <body> </body> </html>

network.js

test.addEventListener(''click'', function() { console.log("clicked"); chrome.sockets.udp.create({}, function (socketInfo) { // The socket is created, now we can send some data var socketId = socketInfo.socketId; var arrayBuffer = stringToArrayBuffer("hello"); chrome.sockets.udp.send(socketId, stringToArrayBuffer("hello"), "127.0.0.1", 11111, function(sendInfo) { console.log("sent " + sendInfo.bytesSent); if (sendInfo.resultCode < 0) { console.log("Error listening: " + chrome.runtime.lastError.message); } }); }); }); function stringToArrayBuffer(string) { var buffer = new ArrayBuffer(string.length * 2); var bufferView = new Uint16Array(buffer); for (var i = 0, stringLength = string.length; i < stringLength; i++) { bufferView = string.charCodeAt(i); } return buffer; }

¿Alguna idea de por qué está pasando esto? He encontrado varios ejemplos de Chrome udp pero todos usaron las API experimentales y no esta.


Te estás perdiendo bind (). La documentación dice "El socket debe estar vinculado a un puerto local antes de llamar al método [the send]".