【问题标题】:How do I reconnect to the same Asteroid instance on a Chrome Extension?如何重新连接到 Chrome 扩展程序上的同一个 Asteroid 实例?
【发布时间】:2016-10-25 16:51:20
【问题描述】:

我正在使用库 mondora/asteroid 来构建 Chrome 扩展,同时使用 Meteor 后端。我在从后台页面存储和携带小行星实例时或在打开或关闭弹出窗口时遇到问题。我需要跟踪用户是否登录。

要创建小行星实例,我使用:

const Asteroid = createClass();
asteroid = new Asteroid({
  endpoint: 'ws://localhost:3000/
});

我尝试通过 chrome.storage.local.set 传递小行星实例,但是当我尝试将它与 chrome.storage.local.get 一起使用时,我收到一个错误,不允许我使用小行星函数。

与用户来回交流的最佳方式是什么?

【问题讨论】:

  • 消息传递仅适用于简单的 JSON 对象,因此您必须在一个上下文中使用实例。
  • 哦,好的。您对我如何在每个实例上登录某人有什么建议吗?我知道我可以转移他们的 userId,但是我怎样才能让他们登录
  • 您与后端的所有通信都必须在后台进行,而不是弹出窗口。
  • 哦。那么如何在弹窗和后台之间进行通信呢?

标签: javascript google-chrome meteor google-chrome-extension ddp


【解决方案1】:

您可以使用older version,它具有使用chrome 扩展API 的内部机制。它存储用户,您可以使用resumeLoginPromise在后台范围内恢复用户会话

asteroid.resumeLoginPromise.then((userId) => {
     //do something with user
    }).catch(function(ex) {
      console.error(ex);
      // No login token
    });
  }
});

在 repo 中你可以找到特殊的build for chrome

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多