我正在编写一个 android 应用程序,它将设备上的每个通知转发到 GCM,然后发送到注册的 chrome 扩展。一切正常,除非我的分机离线一段时间然后重新上线,它会在分机离线时接收所有排队的消息。这不是我想要的行为。如果收件人离线,我想丢弃消息。
如何才能做到这一点?
谢谢
我正在编写一个 android 应用程序,它将设备上的每个通知转发到 GCM,然后发送到注册的 chrome 扩展。一切正常,除非我的分机离线一段时间然后重新上线,它会在分机离线时接收所有排队的消息。这不是我想要的行为。如果收件人离线,我想丢弃消息。
如何才能做到这一点?
谢谢
您可以在将 GCM 发送到 chrome 扩展程序时设置一个名为time_to_live的参数。这接受整数值,即秒。
消息的生存时间(以秒为单位)。如果在该时间内无法发送消息,则会引发 onSendError 事件。生存时间为 0 表示应立即发送消息,如果不可能,则发送失败。time-to-live 的最大值和默认值是 86400 秒(1 天)。
因此,在将 GCM 消息发送到您的 chrome 扩展程序时,将此参数设置为 0。这将在扩展程序脱机时丢弃该消息,并且即使它处于脱机状态也不会发送。
有关更多详细信息,请查看此chrome GCM 官方文档。