Google chrome 使用UDP的googlechrome扩展

Google chrome 使用UDP的googlechrome扩展,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我想开发基本的扩展。此扩展应在UDP上通信。这个扩展是关于消息传递的。我想创建一个客户端。因为我用Java创建了一个服务器。客户端可以向服务器发送消息,服务器可以向客户端发送消息 我看了一页。但这些文件不是最新的。我创建了一个基本客户端,如下所示: // values var address = null; var connect = null; var disconnect = null; // UDP-Object var echoClient = null; //

我想开发基本的扩展。此扩展应在UDP上通信。这个扩展是关于消息传递的。我想创建一个客户端。因为我用Java创建了一个服务器。客户端可以向服务器发送消息,服务器可以向客户端发送消息

我看了一页。但这些文件不是最新的。我创建了一个基本客户端,如下所示:

// values
var address     = null;
var connect     = null;
var disconnect  = null;

// UDP-Object
var echoClient  = null;

// -------------------------------------------------------------------------------------------------------------------

window.addEventListener("load", function() {

  // input: address.val
  address = document.getElementById("address");

  // button: connect.val
  connect = document.getElementById("connect");

  // button: disconnect.val
  disconnect = document.getElementById("disconnect");

  // button: connect.func
  connect.onclick = function(ev) {
    if(address.value != ""){
      echoClient = newEchoClient(address.value);
    }
  };

  // button: disconnect.func
  disconnect.onclick = function(ev) {
    echoClient.disconnect();
  }

  // send data
  setInterval(function(){ 
    echoClient.sender();
  }, 1000);

});

// -------------------------------------------------------------------------------------------------------------------

var newEchoClient = function(address) {
  var ec            = new chromeNetworking.clients.echoClient();
  ec.sender         = attachSend(ec);
  var hostnamePort  = address.split(":");
  var hostname      = hostnamePort[0];
  var port          = (hostnamePort[1] || 7) | 0;
  ec.connect(
    hostname, port,
    function() {
      console.log("Connected");
    }
  );
  return ec;
};

var attachSend = function(client) {
  var i = 1;
  return function(e) {
    var data = i;
    i++;
    client.echo(data, function() {
        console.debug(data.data); // the problem is here
    });
  };
};
但是这个代码不起作用。在Chrome中,我犯了以下错误:

Error in event handler for sockets.udp.onReceive: RangeError: byte length of Uint32Array should be a multiple of 4
    at chrome-extension://boeaihphlidceiemkegklmbmefjgogfk/networking.js:84:25
    at chrome-extension://boeaihphlidceiemkegklmbmefjgogfk/networking.js:31:34

哪里错了?我该怎么处理这个问题呢?

好的,Chrome扩展无法使用UPD进行通信。如本文所述,您可以同时使用应用程序和可通信的扩展,也可以使用扩展和扩展

我认为只有Chrome应用程序可以访问socket API,而不是本文中所述的Chrome扩展

您还可以检查以下内容:

参考文献中提到chrome扩展不能使用chrome.socket

希望这有帮助