如何在与Salesforce平台EventBus对话的Comed客户端中刷新令牌?
我使用cometd来监听Salesforce中生成的平台事件。我的Comet客户端配置代码如下所示如何在与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 }
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删除,我们必须再次订阅该频道才能接收事件 为了做到这一点,我们必须利用元/握手回调再次重新订阅该频道