【问题标题】:Disconnecting & reconnecting clients to the Receiver Session断开和重新连接客户端到接收器会话
【发布时间】:2014-05-06 17:53:09
【问题描述】:

我有多个发送者通过 Chrome 同时连接到我的接收者。当其中一个发送者断开连接(关闭浏览器窗口、刷新页面、断开连接......等)时,我希望在接收者上触发“onSenderDisconnected”事件。

到目前为止,这似乎只发生在由于某种原因失去连接时。例如,如果发件人只是刷新,则永远不会删除发件人,而是创建一个新的发件人。这意味着我可能有 2 个来自同一来源的“连接”发件人。

有什么方法可以在重新连接时删除旧的发件人,或者有没有办法在重新连接时保持相同的发件人ID?

我还想为每个发件人提供手动断开会话的选项(使用按钮)。当前执行此操作的唯一方法是停止投射到设备,但这会结束所有用户的会话。我该怎么办?

【问题讨论】:

    标签: chromecast google-cast


    【解决方案1】:

    对于第一个问题,我通过手动跟踪我的“发件人”来处理它。

    每个发件人都有一个“id”。像 2:client:23522 这样的东西。无论特定客户端重新连接到会话多少次,冒号 (2) 之前的第一个数字似乎都保持不变。第二个数字(23522)每次都会改变。

    通过检查连接客户端的第一个数字,您可以确定重新连接的是新客户端还是现有客户端。这样,当在客户端/发送者之间来回发送消息时,您可以保留一组“活动”客户端,而忘记旧的未使用客户端 ID。

    【讨论】:

    • 答案清楚地解释了你在做什么,唯一缺少的是一些代码上下文来知道你在哪里手动控制发件人。我的猜测是您使用onSenderConnected,但这只是一个猜测;)谢谢!
    • @dome 我现在没有任何示例代码可用,但您认为我在onSenderConnected 方法中处理了它是正确的。有机会时,我会用代码示例更新我的答案。
    【解决方案2】:

    对于第一项(即在每次重新加载时添加更多发件人),我已经打开了一个内部问题进行调查。对于第二个,目前您不能在不停止应用程序的情况下断开您的 chrome 发送器;您可以(a)停止应用程序+断开连接(如果您使用强制转换扩展)或(b)关闭选项卡,就像“什么都没发生”一样。我们正在考虑使其更接近其他两个平台上的 API。

    【讨论】:

    • 我害怕那个。我正在通过创建一组“Sender”对象并相应地更改它们的 id 来处理第一个问题。对于该特定发件人,冒号前的数字(如 2 中的 2:client:23522)似乎保持不变。所以我只是根据那个号码更新发件人的真实身份。这似乎工作正常,但这是一种奇怪的解决方法。希望在不久的将来会有更好的方法来断开/重新连接客户端。
    • @ninemind 您介意用您描述的解决方法发布答案吗?在谷歌修复这个问题的同时,为这个问题提供一个补丁会很棒。谢谢!
    • @dome 我刚做了,如果答案清楚请告诉我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2016-07-26
    • 2016-11-19
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多