2012-03-25 123 views
0

我試圖在Google App Engine(Python)上運行我的後端服務器來實現頻道,但我不確定如何編寫Chrome的前端代碼。我發現了一些代碼,但無法測試,因爲我正在等待後端代碼由我的合作伙伴編寫。我想知道如果我正確實施這一點。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 
    } 
}); 

回答

2

只要背景頁面接收到來自擴展的其他部分(例如,內容腳本)的請求,寫入的代碼就會打開一個通道。

您可能希望在擴展程序加載後立即打開該通道,然後纔可以。爲此,只需打開您的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()包裝)

+0

哦,我現在明白了。沒有onRequest.addListener()就更有意義了。所以我的套接字將不斷地收聽來自頻道的消息。 – Jon 2012-03-26 00:02:12