问题标签 [multipeer-connectivity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 多点连接:未通过 Wifi 基础设施发现设备
我在我的 Macbook Pro 上创建了一个网络(在 WiFi 列表的正下方),我有 2 个 iOS 7(iPad 2 和 iPod Touch)设备加入了这个网络。当我开始浏览设备时,我只有“搜索”和在本机 BrowseViewController 中旋转的轮子。显然,一台设备没有发现另一台设备。但是当我同时打开蓝牙时,设置工作。拜托,你能帮我解决这个问题吗?
ios - NSStream NSStreamEventHasSpaceAvailable 事件何时调用?
我不能真正理解这个事件。我希望在发送队列(或类似的内部结构)完成发送先前写入的数据包时调用它。
这是一个正确的假设吗?
我正在通过 Multipeer 连接开发视频流媒体,我想使用此属性来决定是否应该丢弃相机帧(如果没有NSStreamEventHasSpaceAvailable
),或者我可以将其提交给NSOutputStream
.
想象一个蓝牙连接,我真的需要丢掉很多相机帧,而不是把每一帧都提交到NSStream
.
ios - iOS7蓝牙通讯问题
我有一个必须通过蓝牙快速打磨 NSData 的应用程序。问题是发送和接收 NSData 之间的延迟(长度为 367,频率至少每秒 10 个口袋)随着时间的推移变得越来越大。
现在我试图用方法发送数据sendData:toPeers:withMode:error:
。我不敢相信蓝牙甚至无法正常发送 4KBps(在 2 部 iPhone 5s 上测试)。我该如何解决?NSInputStreams(NSOutputStreams) 会帮助我吗?
PS:当我使用相同代码的 Wi-Fi 时,即使每秒 60 个口袋,一切看起来都很好。
更新:当我尝试使用流时,它们总是在几秒钟后关闭。
multipeer-connectivity - MCNearbyServiceAdvertiser 委托方法从未被调用
使用多点连接框架和附近服务(浏览器和广告商)在设备之间实现具有自动连接以交换少量数据的应用程序。
我建立了一个处理所有连接细节的会话管理器。它的委托是一个视图控制器,以便在接收到数据时处理 UI 的更新。
会话管理器构建:
- 服务广告商,代表是会话管理器
- 服务浏览器,代理也是会话管理器
在两台设备上启动应用程序(一台在 Xcode 下获取日志,另一台独立),我通过服务浏览器委托相应的方法收到一条 Found Peer 消息。
正如另一条消息中所述,我比较了 MCPeerID 的 displayName 属性(本地和来自接收的 Peer)来决定两者中的哪一个将发送邀请,从而避免交叉邀请。
正如这里的另一条消息所述,我还添加了“可选”MCSession 委托方法- (void)session:didReceiveCertificate:fromPeer:certificateHandler:
但是,(void)advertiser:didReceiveInvitationFromPeer:withContext:invitationHandler:
从不调用 MCNearbyServiceAdvertiser 的委托方法。(void)session:peer:didChangeState:
在方法中设置超时后,MCSession 委托方法只收到一条 NotConnected 消息invitePeer:toSession:withContext:timeout:
。
在提出的各种选择中:
- Session 初始化为 security nil 和 MCEncryptionNone;
- 发现信息为零;
- 邀请中发送的上下文只是一个归档为 NSData 的短字符串。
要进行故障排除:
- 我检查了所有项目是否存在(会话及其委托、广告商及其委托)。
- 只要应用程序处于活动状态,服务浏览器和广告商就永远不会停止。
我现在不知道在哪里看!
ios - 我可以在后台运行多点连接会话吗?
我有两个应用程序成功地利用多点连接来发送消息。
目前,当“服务器”应用程序移至后台时,我会关闭会话并在返回前台时重新建立。现在,我需要在后台使服务器应用程序响应(接收到的消息)。
通过响应,我的意思是可以接受传入的消息,进行处理并向对等方返回确认 - 不需要 UI。当 App 回到前台时,会显示在后台收到的消息。
我在后台通知中禁用了 MPC teartown,发现 MPC 自动断开“服务器”与会话的连接——所以我的“客户端”同行看到服务器离线。
- 可以进行后台多人会话吗?我认为它是,但似乎无法找到任何关于我将如何启用它的明确信息。
- 我还没有开发支持后台处理的应用程序,所以我正在寻找支持后台处理的应用程序是否可以解决问题的指导
- 我见过的支持的后台模式并没有真正与多点对齐——我能找到的最接近的是“后台获取”——这真的很重要吗?
ios - 禁用连接警报 Multipeer Connectivity
我想为我的应用程序使用 Multipeer Connectivity 功能。应用程序功能简介:应用程序应扫描运行该应用程序的其他设备(在后台),连接到它们并传输一些数据。所有这些都无需与用户交互。
问题:是否可以使用多对等连接到其他设备,但不必显示另一个设备想要连接的警报视图并强制用户接受或拒绝连接?有没有一种方法可以让我以编程方式接受来自其他设备的所有传入连接?如果是这样,怎么做?
提前非常感谢!
ios - Peer(MultiPeer Connectivity)已连接但未存储在 connectedPeers
我有一台设备向其他 2 个浏览器做广告。一旦两个浏览器第一次连接到广告商,一切都会正常运行(每个对等点都相互连接)。
一旦浏览器 1 断开连接并重新连接,浏览器 2 就不再将浏览器 1 作为连接的对等体,即使它们根据 peer:didChangeState: 连接也是如此。但是,广告商已成功连接了 2 个对等方。有什么想法可能是错误的,或者我该如何进一步调试?
(注意:我正在使用 MCNearbyServiceAdvertiser 和 MCNearbyServiceBrowser 并创建自己的自定义广告商/浏览器视图控制器)
ios - 与非 iOS 设备的多点蓝牙连接
我目前正在尝试通过蓝牙连接 Raspberry Pi 和 iOS 设备。使用 BTLE 并且CBCentralManager
我能够做到这一点 - 我可以连接到 Pi 并共享数据。
我的问题是,出于我的目的,我需要设备具有 IP - 据我所知,只有使用 PAN(个人局域网)蓝牙配置文件才有可能。iOS 确实通过新的Multipeer Connectivity Framework支持这一点,它在连接两台 iOS 设备时工作,一个使用MCNearbyServiceBrowser
,另一个使用MCNearbyServiceAdvertiser
. 建立连接后,两个设备都有一个带有 IP 的网络接口。但是现在我必须让 Rasperry Pi 进入那个场景——我找不到任何方法让 Pi 加入 PAN。
是否有人有任何线索,如果这是可能的,从哪里开始寻找,是否对 PAN 中的通信或类似的东西有很好的解释?甚至可能有一个框架可以做这样的事情吗?我很高兴有任何线索和建议。
ios - iOS 7 Multipeer Connectivity- MCNearbyServiceBrowser 找到自己了吗?
我有一个应用程序使用 iOS 7 Multipeer Connectivity 框架来宣传自己以及浏览其他设备。为什么我的MCNearbyServiceBrowser
实例会找到自己(运行应用程序的设备)并调用browser:foundPeer...
委托方法?如果我记录PeerID
我为开始宣传我的设备而创建的实际数据,以及PeerID
在委托方法中发现的数据,它们具有不同的唯一 ID,但显示名称相同。任何想法为什么?
ios - Multipeer Connectivity:connectedPeer 未连接?
我想使用 Multipeer Connectivity 框架发送资源,见下文。但奇怪的是日志说:
所以对等体已连接,并且在下一行中表示它未连接。怎么,为什么?所有委托方法都在客户端很好地实现。