我正在编写一个chrome JS扩展,它使用套接字与Java服务器通信。当我使用下面这行代码时:
var socket = chrome.socket || chrome.experimental.socket;
socket.create('tcp',{},function(createInfo) {我得到了
Error in event handler for 'tabs.onUpdated': Cannot read property 'socket' of undefined TypeError: Cannot read property 'socket' of undefined错误( JS代码在tabs.onUpdated函数中)。
我的清单文件是:
{
"manifest_version": 2,
"name": "MitM Phishing Detector",
"description": "This extension protects your browser against phishing attacks based on MitM attacks",
"version": "1.0",
"background": {
"scripts": ["notify.js"],
"persistent": false
},
"browser_action": {
"default_icon": "bluetooth_device.png",
"default_popup": "choose_device.html"
},
"permissions": [
"tabs",
"http://*/*",
"background",
{"socket":
[ "tcp-connect:127.0.0.1:8081" ]
},
"notifications"
]
}发布于 2013-04-10 21:09:40
如果你使用的是Chrome的金丝雀/实验版本,你应该能够做到
chrome.experimental.socket.create('tcp', ...)若要打开TCP套接字,请执行以下操作。但是仅仅调用socket.create是行不通的。
请记住,这可能只在chrome上有效。WebSockets是一种更便于移植的解决方案。
为了正确设置套接字,我认为这应该可以工作(还没有测试过):
var socket = chrome.socket;
if (unfefined !== chrome.experimental.socket)
socket = chrome.experimental.socket;
if (undefined === chrome.socket)
throw "Socket unavailable"https://stackoverflow.com/questions/15926649
复制相似问题