【问题标题】:Google Chrome Extension Using With UDP使用 UDP 的 Google Chrome 扩展程序
【发布时间】:2017-04-07 23:08:03
【问题描述】:

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

我看Chrome Developer 页面。但这些文件不是最新的。我创建了一个这样的基本客户端:

// 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

哪里错了?这个问题我该怎么办?

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

    AFAIK,Chrome 扩展程序无法使用 UPD 进行通信。正如post 中所述,您既可以使用应用程序和扩展程序进行通信,也可以使用扩展程序和Native Host

    我认为只有 Chrome 应用程序可以访问套接字 API,而不是 post 中所述的 Chrome 扩展程序。

    你也可以检查一下:

    参考文献谈到 chrome 扩展不能使用 chrome.socket。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2011-03-28
      相关资源
      最近更新 更多