为什么chrome.sockets.tcp.create()在app后台脚本中不起作用?

时间:2015-02-08 10:52:19

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

我正在尝试在我的应用的后台脚本中创建一个tcp套接字。

错误是(1.js中的第一行):

  

未捕获的TypeError:无法读取属性' tcp'未定义的

后台脚本1.js

chrome.sockets.tcp.create({}, function(createInfo) {
  chrome.sockets.tcp.connect(createInfo.socketId,
    "127.0.0.1", 4005, function(socketInfo) {

    });
});

清单文件:

{
  "manifest_version": 2,
  "name": "UDP TEST",
  "version": "1.0",
  "app": {
    "background": {
      "scripts": ["1.js"]
    }
  },
  "permissions": [
    {
        "socket": [
            "tcp-listen:*:*",
            "tcp-connect",
            "resolve-host"
        ]
    }
  ]
}

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:4)

您在清单中拥有错误的权限。查看Chrome API帮助: https://developer.chrome.com/apps/sockets_tcp (并且特别针对清单:https://developer.chrome.com/apps/manifest/sockets

权限应该是"套接字"。您正在使用新的"套接字" API,但在你的清单中,你指的是旧的" socket"权限(https://developer.chrome.com/apps/socket

您的清单权限应为:

"permissions": [{
    "sockets": {
        "tcp": {
          "connect": "127.0.0.1:4005"
        }
    }
}]