我正在尝试使用在 Google App Engine (Python) 上运行的后端服务器实现一个 channel ,但我不确定如何编写 Chrome 的前端代码。我找到了一些代码,但无法测试,因为我正在等待我的合作伙伴编写后端代码。我想知道我是否正确实现了这一点。
我也不明白代码是怎么触发的?是什么触发了这个 channel 的创建?
//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
}
});
最佳答案
只要后台页面收到来自扩展程序其他部分(例如内容脚本)的请求,您编写的代码就会打开一个 channel 。
您可能希望在扩展程序加载后立即打开 channel ,而且只有在那时。为此,只需在后台.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() 包装器)
关于javascript - Chrome 扩展 - 实现 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865104/