延迟通知来自 Twilio 的来电

Posted

技术标签:

【中文标题】延迟通知来自 Twilio 的来电【英文标题】:Delayed notification of incoming calls from Twilio 【发布时间】:2021-06-08 08:38:07 【问题描述】:

通知会延迟吗? 我正在使用 Firebase 来通知我有来电。在极少数情况下,通知似乎在应用程序中到达较晚。 我想检测来电通知是否成功。有那个API吗? 客户端是 iosandroid 应用程序。

谢谢,高尾

【问题讨论】:

【参考方案1】:

我曾经有过类似的用例,这正是我们面临的问题,但很抱歉有时会发生这种情况。我从official docs 引用这个

FCM 通常在消息发送后立即传递消息。但是,这可能并不总是可能的。例如,如果平台是 Android,则设备可能会关闭、离线或不可用。或者 FCM 可能会故意延迟消息,以防止应用消耗过多资源并对电池寿命产生负面影响。

发生这种情况时,FCM 会存储消息并在可行时尽快发送。虽然这在大多数情况下都很好,但有些应用程序可能永远不会发送迟到的消息。例如,如果消息是来电或视频聊天通知,则它仅在通话终止前的短时间内有意义。或者,如果消息是一个活动的邀请,如果在活动结束后收到它是没有用的。

在 Android 和 Web/javascript 上,您可以指定消息的最长生命周期。该值必须是从 0 到 2,419,200 秒(28 天)的持续时间,它对应于 FCM 存储和尝试传递消息的最长时间。不包含此字段的请求默认为最长 4 周。

因此,如果可能的话,我建议您最好为此实施一些其他方式,例如Socket 连接或其他方式。据我所知,无法知道Notification 是否到达用户的设备iOSAndroid。发送消息时我们确实会收到 OK 或 Success 响应,但它们是否到达是另一回事。

您应该检查该链接并减少 TTL 因素,这可能有帮助,也可能没有帮助。

【讨论】:

che10 谢谢。这一次,Twilio 控制通知的发送,所以你不能在这里做。如果可以做一些干预会很有帮助,但我认为这很难。 @takanao 您可以联系他们的支持团队,但我猜他们可能已经在这样做了。如果可能的话,我会说,如果可能,请处理在您结束时发送呼叫通知的逻辑,并仅将 Twilio 用于呼叫实用程序。 che10 谢谢。我正在联系支持团队。等了很久,有来电通知的API吗?如果是这样,那就太好了。请告诉我 API 手册的页面。 @takanao 没有这样的 API。据我记得,我们需要某种房间 ID 或类似的东西来加入 Twilio 通话。抱歉,我记不太清了,所以我们过去通常通过 Firebase 和其他使用数据发送所有这些数据。 调用实用程序是Android API,不是吗?在这种情况下,我必须自己实现来电处理。

以上是关于延迟通知来自 Twilio 的来电的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在前台时收到 Twilio 通知警报

使用 Twilio 发送 Apple 静默推送通知

Twilio 可编程聊天 - 推送通知未到达

如何在 React Native 中实现 Twilio android 推送通知?

移动应用程序 - Twilio 视频/呼叫不一致的推送通知

php 使用Twilio API发送短信通知