簡體   English   中英

無法讀取chrome.sockets API中的Undefined TypeError屬性套接字

[英]Cannot read property socket of Undefined TypeError in chrome.sockets API

我正在編寫一個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"
  ]
}

如果您使用的是Chrome的canary / experimental版本,則應該可以

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM