延迟通知来自 Twilio 的来电
Posted
技术标签:
【中文标题】延迟通知来自 Twilio 的来电【英文标题】:Delayed notification of incoming calls from Twilio 【发布时间】:2021-06-08 08:38:07 【问题描述】:通知会延迟吗? 我正在使用 Firebase 来通知我有来电。在极少数情况下,通知似乎在应用程序中到达较晚。 我想检测来电通知是否成功。有那个API吗? 客户端是 ios 和 android 应用程序。
谢谢,高尾
【问题讨论】:
【参考方案1】:我曾经有过类似的用例,这正是我们面临的问题,但很抱歉有时会发生这种情况。我从official docs 引用这个
FCM 通常在消息发送后立即传递消息。但是,这可能并不总是可能的。例如,如果平台是 Android,则设备可能会关闭、离线或不可用。或者 FCM 可能会故意延迟消息,以防止应用消耗过多资源并对电池寿命产生负面影响。
发生这种情况时,FCM 会存储消息并在可行时尽快发送。虽然这在大多数情况下都很好,但有些应用程序可能永远不会发送迟到的消息。例如,如果消息是来电或视频聊天通知,则它仅在通话终止前的短时间内有意义。或者,如果消息是一个活动的邀请,如果在活动结束后收到它是没有用的。
在 Android 和 Web/javascript 上,您可以指定消息的最长生命周期。该值必须是从 0 到 2,419,200 秒(28 天)的持续时间,它对应于 FCM 存储和尝试传递消息的最长时间。不包含此字段的请求默认为最长 4 周。
因此,如果可能的话,我建议您最好为此实施一些其他方式,例如Socket
连接或其他方式。据我所知,无法知道Notification
是否到达用户的设备iOS
或Android
。发送消息时我们确实会收到 OK 或 Success 响应,但它们是否到达是另一回事。
您应该检查该链接并减少 TTL
因素,这可能有帮助,也可能没有帮助。
【讨论】:
che10 谢谢。这一次,Twilio 控制通知的发送,所以你不能在这里做。如果可以做一些干预会很有帮助,但我认为这很难。 @takanao 您可以联系他们的支持团队,但我猜他们可能已经在这样做了。如果可能的话,我会说,如果可能,请处理在您结束时发送呼叫通知的逻辑,并仅将Twilio
用于呼叫实用程序。
che10 谢谢。我正在联系支持团队。等了很久,有来电通知的API吗?如果是这样,那就太好了。请告诉我 API 手册的页面。
@takanao 没有这样的 API。据我记得,我们需要某种房间 ID 或类似的东西来加入 Twilio 通话。抱歉,我记不太清了,所以我们过去通常通过 Firebase 和其他使用数据发送所有这些数据。
调用实用程序是Android API,不是吗?在这种情况下,我必须自己实现来电处理。以上是关于延迟通知来自 Twilio 的来电的主要内容,如果未能解决你的问题,请参考以下文章