首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取chrome.sockets API中未定义的TypeError的属性套接字

无法读取chrome.sockets API中未定义的TypeError的属性套接字
EN

Stack Overflow用户
提问于 2013-04-10 21:03:39
回答 1查看 2.2K关注 0票数 0

我正在编写一个chrome JS扩展,它使用套接字与Java服务器通信。当我使用下面这行代码时:

代码语言:javascript
复制
var socket = chrome.socket || chrome.experimental.socket;
socket.create('tcp',{},function(createInfo) {

我得到了

代码语言:javascript
复制
Error in event handler for 'tabs.onUpdated': Cannot read property 'socket' of undefined TypeError: Cannot read property 'socket' of undefined

错误( JS代码在tabs.onUpdated函数中)。

我的清单文件是:

代码语言:javascript
复制
{
      "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"
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2013-04-10 21:09:40

如果你使用的是Chrome的金丝雀/实验版本,你应该能够做到

代码语言:javascript
复制
chrome.experimental.socket.create('tcp', ...)

若要打开TCP套接字,请执行以下操作。但是仅仅调用socket.create是行不通的。

请记住,这可能只在chrome上有效。WebSockets是一种更便于移植的解决方案。

为了正确设置套接字,我认为这应该可以工作(还没有测试过):

代码语言:javascript
复制
var socket = chrome.socket;
if (unfefined !== chrome.experimental.socket)
  socket = chrome.experimental.socket;
if (undefined === chrome.socket)
  throw "Socket unavailable"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15926649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档