javascript - Chrome 扩展 - 实现 channel

标签 javascript google-chrome-extension channel-api

我正在尝试使用在 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/

相关文章:

javascript - React-Native android,重置默认应用程序

google-app-engine - channel api 的 url 似乎为空(GAE channel )适用于 dev,不适用于 google

安卓常连接网站

java - appengine ChannelFailureException 未在开发中抛出

javascript - 开放层 3 : interactions on loaded vector features

javascript - 如何在express服务器中添加动态路由?

javascript - Jquery从json中获取值到select中

CSS 动画适用于 Safari 和 Firefox,但不适用于 Chrome

javascript - chrome.tabs.executeScript() 格式问题

javascript - "Attempting to use a disconnected port object"将消息从内容发送到 Chrome 扩展程序中的弹出窗口时