在Android WiFi Direct服务发现中发送数据而不是连接
作者:互联网
遵循以下文档:
http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html
通过将数据放入WifiP2pDnsSdServiceInfo对象,似乎可以向没有建立连接的所有附近具有WiFi Direct的设备广播数据.这适用于我的目的,因为我试图在多个附近的设备之间建立一个简单的P2P消息传递应用程序.然而,这似乎是对API的误用,因为它旨在携带信息以建立连接并宣传服务.我的问题是:
>以这种方式发送数据有哪些优缺点(请忽略安全性)?
>发送/接收的消息是否会有延迟.
>对电池寿命的影响是什么样的?
解决方法:
>传递到WifiP2pDnsSdServiceInfo对象的键/值对将被封装到DNS多播消息中,如DNS-Based Service Discovery中所述.
> WiFi上的多播流量特别昂贵,因此不建议将其用于消息传递.仅适用于服务发现等关键事项.
>根据实现(android),under框架可能会在调用回调之前汇集所有服务发现记录/响应.这可能会为您的简单P2P消息传递增加显着(甚至不可预测)的延迟.
>这基本上是一个DNS消息传递,因此您的“消息”可以在本地缓存. DNS查询还可以尝试中级优化,如池化,重试,查询过滤,优先级排序等.
>没有可靠性保证,因此您的消息可能会丢失.
>此处使用的多播流量可能会导致显着的battery drain on android, see here
标签:wifi-direct,android 来源: https://codeday.me/bug/20190824/1713262.html