2015-02-08 3 views
3

Я пытаюсь создать сокет tcp в фоновом сценарии моего приложения.Почему chrome.sockets.tcp.create() не работает в фоновом скрипте приложения?

Ошибка (первая строка в 1.js):

Uncaught TypeError: Cannot read property 'tcp' of undefined

фон сценарий 1.js:

chrome.sockets.tcp.create({}, function(createInfo) { 
    chrome.sockets.tcp.connect(createInfo.socketId, 
    "127.0.0.1", 4005, function(socketInfo) { 

    }); 
}); 

файл манифеста:

{ 
    "manifest_version": 2, 
    "name": "UDP TEST", 
    "version": "1.0", 
    "app": { 
    "background": { 
     "scripts": ["1.js"] 
    } 
    }, 
    "permissions": [ 
    { 
     "socket": [ 
      "tcp-listen:*:*", 
      "tcp-connect", 
      "resolve-host" 
     ] 
    } 
    ] 
} 

Может кто-нибудь мне помочь? Благодаря!

+0

Хорошо, нам нужно будет спаме Chrome, чтобы они знали ** ** ** ** ** ** Расширения Chrome для поддержки UDP/TCP. ПЕРЕЙТИ к https://docs.google.com/forms/d/e/1FAIpQLSenHdpA8_eqKiVOrWDjWe_KTfJmoSBEqFIh6SMwQ-NRDJnx1Q/viewform?c=0&w=1&fbzx=5919424429593565000 и введите это: – Pacerier

+0

.. "' Мы должны хромовые расширения для поддержки UDP/TCP-сокеты. Я не могу перенести chrome.sockets на extensions dammit. Встроенный обмен сообщениями не является реальным решением для chrome.sockets. Имеет ли смысл, что мне придется создавать родное приложение Windows, чтобы получать «сообщения UDP и TCP» «от расширения Chrome через собственное сообщение от Chrome, а затем передать эти запросы на фактический UDP и TCP?» «Эффективное поражение - это огромный (который в первую очередь превзойдет все цели UDP и TCP)!» и нажмите «Представить предложение». – Pacerier

ответ

2

У вас есть неправильные разрешения в манифесте. Посмотрите на Chrome API помощи: https://developer.chrome.com/apps/sockets_tcp (и specificaly для манифеста: https://developer.chrome.com/apps/manifest/sockets)

Разрешение должно читать "гнездо". Вы используете новый «гнезда» API, но в манифесте вы имеете в виду старые «гнезда» разрешений (https://developer.chrome.com/apps/socket)

манифеста разрешения следует читать:

"permissions": [{ 
    "sockets": { 
     "tcp": { 
      "connect": "127.0.0.1:4005" 
     } 
    } 
}] 
+2

Разве Google изменил свое мнение об этом? Кажется, он больше не работает в 46. (Согласно [this] (https://developer.chrome.com/extensions/declare_permissions), 'sockets' не является вариантом для разрешений) –

+1

@Mario: кажется, что сокеты работают только в приложениях (для ChromeOS), а не в расширениях , – Zaz

+0

@ Zaz, Damn Chrome Team. Как мы можем заставить это работать над расширениями? 'chrome.sockets' не определено как в background.js, так и в content.js. – Pacerier