在Chrome应用中创建TCP侦听套接字:"没有权限"

时间:2017-08-29 06:11:26

标签: google-chrome-app

我正在撰写Google Chrome应用程序,我希望它能够打开TCP侦听套接字。

以下是manifest.json文件的相关部分:

{
   "app": { ... }
   "manifest_version" : 2,
   "permissions" : { ... }, // None of the permissions seem relevant here?!?
   "sockets" : {
      "tcp": { "connect" : ["*"] },
      "tcpServer" : { "listen" : ["127.0.0.1:1763"] }
   }
}

我尝试打开套接字的代码:

chrome.sockets.tcpServer.create(
      { 
         persistent: true, 
          name: "My socket" 
      }, 
     (socketCreateInfo) => {
           console.log(`chrome.sockets.tcpServer.create callback invoked. 
           socketId=${socketCreateInfo.socketId}`);
           const socketId = socketCreateInfo.socketId;
           chrome.sockets.tcpServer.listen(
               socketId, 
               "127.0.0.1", 
                1763, 
                resultCode => {
                     if (typeof (resultCode) === "undefined") {
                          console.log(`listen callback error! "${chrome.runtime.lastError.message}"`);
                    }
                    else {
                      console.log(`listen callback with resultCode ${resultCode}`);
                      this.onListenCallback(socketId, resultCode);
                    }
             });
     });

输出控制台记录:

  

调用chrome.sockets.tcpServer.create回调。 socketId = 22

     

听回调错误! "没有许可"

但是我在清单中请求了许可!为什么这会失败?

1 个答案:

答案 0 :(得分:0)

我的问题中的代码实际上很好。

这是我的错误:我在Windows上测试这是一个本地的,解压缩的扩展程序。如果更改manifest.json文件,则必须卸载并重新安装扩展才能使这些更改生效。

一旦我卸载并重新安装了我的Chrome应用程序,就可以了。