如何在与Salesforce平台EventBus对话的Comed客户端中刷新令牌?

如何在与Salesforce平台EventBus对话的Comed客户端中刷新令牌?,salesforce,cometd,Salesforce,Cometd,我使用cometd来监听Salesforce中生成的平台事件。我的Comet客户端配置代码如下所示 this.client.configure({ url: `${this.org.instance_url}/cometd/46.0`, requestHeaders: { Authorization: `Bearer ${salesforceToken}` }, appendMessageTypeToURL: false }

我使用cometd来监听Salesforce中生成的平台事件。我的Comet客户端配置代码如下所示

this.client.configure({
      url: `${this.org.instance_url}/cometd/46.0`,
      requestHeaders: {
        Authorization: `Bearer ${salesforceToken}`
      },
      appendMessageTypeToURL: false
    });
其中,
salesforceToken
是使用刷新令牌获得的。这一切在一段时间内都可以正常工作,但如果在相当长的一段时间内没有任何事件发生(据说是在6-24小时之间),那么我的客户似乎过期了,没有收到任何事件。如果我刷新令牌并重新启动侦听器,事情就会重新开始工作


除了在不活动后每隔几个小时编写某种计时器重新启动进程之外,还有什么方法可以让侦听器保持活动状态

您不必再次刷新令牌

只要通道上没有活动,服务器就会在特定时间后关闭连接

在此期间,客户端收到一个403(未知客户端)状态代码,客户端必须在110秒内再次握手

默认情况下,Comed尝试在没有任何用户交互的情况下重新连接,如果客户端未在预期时间内重新连接,服务器将删除客户端的Comed会话

一旦连接重新连接,所有频道订阅都将被COMDD删除,我们必须再次订阅该频道才能接收事件

为了做到这一点,我们必须利用元/握手回调再次重新订阅该频道