我正在撰写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
听回调错误! "没有许可"
但是我在清单中请求了许可!为什么这会失败?
答案 0 :(得分:0)
我的问题中的代码实际上很好。
这是我的错误:我在Windows上测试这是一个本地的,解压缩的扩展程序。如果更改manifest.json文件,则必须卸载并重新安装扩展才能使这些更改生效。
一旦我卸载并重新安装了我的Chrome应用程序,就可以了。