Chrome扩展-实现通道

Chrome Extension - Implementing Channels

本文关键字:通道 实现 扩展 Chrome      更新时间:2023-09-26

我正在尝试用我的后端服务器实现一个通道,该服务器运行在谷歌应用程序引擎(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
    }
}); 

只要后台页面收到来自扩展的另一部分(例如,内容脚本)的请求,您编写的代码就会打开一个通道。

您可能希望在加载扩展后立即打开通道,并且仅在那时打开。要做到这一点,只需打开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()包装器)