Расширение Chrome - Реализация каналов - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь реализовать канал с моим внутренним сервером, который работает на Google App Engine (Python), и я не уверен, как написать код внешнего интерфейса для Chrome.Я нашел какой-то код, но не могу проверить, так как я жду, когда мой партнер напишет внутренний код.Мне интересно, правильно ли я это реализую.

Я тоже не понимаю, как сработал код?Что вызывает создание этого канала?

//The code I found which is placed in background.html:

chrome.extension.onRequest.addListener (function(request, sender, sendResponse) {
    var channel = new goog.appengine.Channel(channelToken);
    var socket = channel.open()

    socket.onopen = function() {
      // Do stuff right after opening a channel
    }

    socket.onmessage = function(evt) {
      // Do more cool stuff when a channel message comes in
    }
}); 

1 Ответ

2 голосов
/ 26 марта 2012

Ваш код в том виде, в котором он написан, будет открывать канал всякий раз, когда фоновая страница получает запрос от другой части вашего расширения (например, скрипта контента).

Возможно, вы захотите открыть канал, как только загрузится расширение, и только потом. Для этого просто откройте сокет в вашем background.html JS, который работает при загрузке страницы.

Например:

var channel = new goog.appengine.Channel(channelToken);
var socket = channel.open()

socket.onopen = function() {
  // Do stuff right after opening a channel
}

socket.onmessage = function(evt) {
  // Do more cool stuff when a channel message comes in
}

(без оболочки onRequest.addListener ())

...