0

ソケットを使用して Java サーバーと通信する chrome JS 拡張機能をプログラミングしています。次の行を使用すると:

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"
  ]
}
4

1 に答える 1

0

Chrome のカナリア/実験的ビルドを使用している場合は、できるはずです

chrome.experimental.socket.create('tcp', ...)

TCP ソケットを開きます。でも電話socket.createするだけではダメ。

これはおそらくクロムでのみ機能することを忘れないでください... WebSockets は、はるかに移植性の高いソリューションです。

ソケットを適切に設定するには、これが機能するはずだと思います(テストしていません):

var socket = chrome.socket;
if (unfefined !== chrome.experimental.socket)
  socket = chrome.experimental.socket;
if (undefined === chrome.socket)
  throw "Socket unavailable"
于 2013-04-10T13:09:40.290 に答える