我的 web 应用程序中有几个开放的 Twilio IP Messaging channel 。然后我尝试使用 updateLastConsumedMessageIndex
依次更新多个开放 channel 的消耗范围。我通过处理 .then
来处理 updateLastConsumedMessageIndex
返回的 Promise,并且 then
处理程序中的 channel 数据表明请求未完成,因为 channel 的 lastConsumedMessageIndex 仍然是旧的。
可以通过递归调用 updateLastConsumedMessageIndex
直到消耗范围更新来解决此问题。
示例代码:
function updateChannelConsumptionHorizon (channel) {
let lastMessageIndex = channel.messages[channel.messages.length - 1].index
channel.updateLastConsumedMessageIndex(lastMessageIndex).then(channel => {
if (channel.lastConsumedMessageIndex !== lastMessageIndex) {
setTimeout(() => {
updateChannelConsumptionHorizon(channel)
}, 100)
}
})
}
有趣的事实是,第一次调用 updateChannelConclusionHorizon
不需要多次尝试,而后续调用最多可尝试 60 次来更新消耗范围。
最佳答案
Twilio 限制消耗范围内的更新,默认情况下每 10 秒发送一次到服务器。使用REST API更新consumation_report_interval
关于javascript - 为什么更新多个 Twilio IPM channel 的消耗范围失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35494552/