Chrome应用中的udp需要什么权限?

时间:2015-08-18 13:23:25

标签: sockets google-chrome permissions google-chrome-app

Chrome应用中的udp需要什么权限? 我收到错误:

  

运行sockets.udp.bind时未经检查的runtime.lastError:应用程序没有权限

但我找不到所需的许可。 我的manifest.json文件如下所示:

{
"name": "XX",
"description": "XX",
"version": "0.0.1",
"manifest_version": 2,
"app": {
    "background": {
        "scripts": ["main.js"]
    }
},
"icons": {
    "16": "icon-16.png",
    "128": "icon-128.png"
},
"sockets": {
    "udp": {
        "send": "*"
    }
},
"permissions": [
    "fullscreen", "alwaysOnTopWindows", "videoCapture", "storage", "browser"
]    

}

2 个答案:

答案 0 :(得分:2)

您需要申请绑定权限

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

答案 1 :(得分:0)

使用UDP

Chrome Apps可以与任何支持UDP的服务建立连接。 发送数据

这是一个示例,说明如何使用UDP在网络上发送数据(sockets.udp.send):

// Create the Socket
chrome.sockets.udp.create({}, function(socketInfo) {
  // The socket is created, now we can send some data
  var socketId = socketInfo.socketId;
  chrome.sockets.udp.send(socketId, arrayBuffer,
    '127.0.0.1', 1337, function(sendInfo) {
      console.log("sent " + sendInfo.bytesSent);
  });
});

接收数据

此示例与“发送数据”非常类似。例如,我们设置了一个用于接收数据的事件处理程序。

var socketId;

// Handle the "onReceive" event.
var onReceive = function(info) {
  if (info.socketId !== socketId)
    return;
  console.log(info.data);
};

// Create the Socket
chrome.sockets.udp.create({}, function(socketInfo) {
  socketId = socketInfo.socketId;
  // Setup event handler and bind socket.
  chrome.sockets.udp.onReceive.addListener(onReceive);
  chrome.sockets.udp.bind(socketId,
    "0.0.0.0", 0, function(result) {
      if (result < 0) {
        console.log("Error binding socket.");
        return;
      }
      chrome.sockets.udp.send(socketId, arrayBuffer,
        '127.0.0.1', 1337, function(sendInfo) {
          console.log("sent " + sendInfo.bytesSent);
      });
  });
});

了解更多信息:look here