作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试围绕以下事实进行编码:在设备超出使用音频(或 Android 的 Earshot)的范围后,messageLostHandler 不会触发很多分钟。
我希望每隔几秒就会从另一台设备收到一条消息。它会触发一次。这是预期的吗?由于我不能依赖 messageLost 处理程序 - 我如何知道设备何时真正超出超声波范围?
我在收到 subscriptionWithMessageFoundHandler 后编写了一个计时器,希望收到另一条消息我可以使计时器无效或重新启动。如果计时器启动,我就会知道 x 秒过去了,并且其他设备一定超出了范围。没有这样的运气。
更新:这是有问题的代码:
let strategy = GNSStrategy.init(paramsBlock: { (params: GNSStrategyParams!) -> Void in
params.discoveryMediums = .Audio
})
publication = messageMgr.publicationWithMessage(pubMessage, paramsBlock: { (pubParams: GNSPublicationParams!) in
pubParams.strategy = strategy
})
subscription = messageMgr.subscriptionWithMessageFoundHandler({[unowned self] (message: GNSMessage!) -> Void in
self.messageViewController.addMessage(String(data: message.content, encoding:NSUTF8StringEncoding))
// We only seem to get a 1x notification of a message. So this timer is folly.
print("PING") //Only 1x per discovery.
}, messageLostHandler: {[unowned self](message: GNSMessage!) -> Void in
self.messageViewController.removeMessage(String(data: message.content, encoding: NSUTF8StringEncoding))
}, paramsBlock: { (subParams: GNSSubscriptionParams!) -> Void in
subParams.strategy = strategy
})
请注意,“PING”仅打印一次。
最佳答案
当设备超出范围时,Nearby 会等待 2 分钟,然后再从其缓存中刷新其他设备的 token 。因此,如果您等待 2 分钟,则应调用 messageLost 处理程序。你能证实这一点吗?此外,假设您希望超时时间短于 2 分钟是否安全?此超时一直是讨论的主题,并且有人谈论添加一个参数,以便应用可以选择更适合其用例的值。
关于swift - Google Nest subscriptionWithMessageFoundHandler 触发一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37621043/
我正在尝试围绕以下事实进行编码:在设备超出使用音频(或 Android 的 Earshot)的范围后,messageLostHandler 不会触发很多分钟。 我希望每隔几秒就会从另一台设备收到一条消
我是一名优秀的程序员,十分优秀!