如何使用chrome.sockets.udp API进行UDP广播?

one*_*uth 8 udp google-chrome broadcast google-chrome-extension

我正在开发Chrome扩展程序,我想在本地网络上广播UDP数据包.

我研究了这个Chrome API.

 chrome.sockets.udp.create({}, function(s){   
        chrome.sockets.udp.bind(s.socketId, address, 0, function(ret){
            chrome.sockets.udp.send(s.socketId, data, "172.16.0.0", 5019, 
                function(sendinfo){console.log(data.byteLength); console.log(sendinfo);})})})
Run Code Online (Sandbox Code Playgroud)

如果我指定了一个地址172.16.0.0,上面的代码就可以了.但如果我换172.16.0.0255.255.255.255,我得到了{resultCode: -10}表示错误.

我的manifest.json:

{
  "manifest_version": 2,
  "name": "UDP",
  "description": "Test",
  "version": "2",
  "minimum_chrome_version": "23",
  "app": {
    "background": {
      "scripts": ["main.js"]
    }
  },
  "sockets":{
    "udp": {"send":["*:*"], "bind":["*:*"]}
  }, 
  "permissions":["system.network"]
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我尝试了chrome.socket,即使在广播上也能正常工作.但从Chrome 33开始,API已被弃用.

one*_*uth 5

从 Chrome 44 开始,我们有了setBroadcastAPI。

https://developer.chrome.com/apps/sockets_udp#method-setBroadcast