【问题标题】:CAF Receiver, shutdown handling to http requestsCAF 接收器,对 http 请求的关闭处理
【发布时间】:2019-01-17 16:59:42
【问题描述】:

首先阅读一些背景知识 :) what is shutdown handling

我正在使用 CAF SDK 做一个自定义接收器。

通过类似的关闭处理,我尝试在回调中分派一些 http 请求,例如:

receiver.addEventListener(
    cast.framework.system.EventType.SHUTDOWN,
    e => {
         // some http requests
         HttpHandler.post(url, somePayload);
         HttpHandler.post(anotherUrl, someOtherPayload);
         ....... (more requests to go)
    });

但是,我不能保证这些请求会到达目的地,因为接收方应用程序将随时终止(可能不到 1 秒)。这些请求也被证明实际上没有到达目的地。

据我所知,没有办法通过 CAF SDK 本身推迟接收器应用程序的关闭。

有解决办法吗?有没有办法在 CAF SDK 的帮助下推迟关机?

【问题讨论】:

    标签: chromecast google-cast custom-receiver


    【解决方案1】:

    我做了更多的研究,结果你也可以使用

    window.addEventListener("beforeunload", e => {
        ...
        });
    

    而不是

    receiver.addEventListener(
        cast.framework.system.EventType.SHUTDOWN,
        e => { 
        ...
        });
    

    唉,这无助于确保回调中的所有内容都被执行:beforeunload 回调以与关闭处理程序相同的方式终止。

    【讨论】:

    • 嗨@Tom,我需要有关 chrome cast 接收器的帮助,我无法接收来自发件人的消息,在调试时我发现一个日志它正在使用默认名称空间,即使我使用了自定义名称空间.你能帮我解决这个问题吗?谢谢
    【解决方案2】:

    答案似乎很简单:将所有 http 请求转为同步。

    缺点也很明显,同步请求会阻塞线程。当一个请求由于未知原因被挂起时,脚本将永远被阻塞,除非强制关闭。

    仍在寻找更好的方法来改进它。

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2018-09-18
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多