问题标签 [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.

0 投票
1 回答
958 浏览

ios - 以 20 秒延迟调用多点方法中的代码

我正在使用多点连接,这是其中一种方法:

由于某些非常奇怪的原因,当调用此方法时,我知道它是由于 NSLog 的响应而被调用的,其余代码没有执行。在 NSLog 出现后 20 秒(或多或少)出现警报,并且永远不会出现进度视图。我不明白为什么。对于多点连接框架中的大多数方法,都会发生这种情况。这怎么可能?

编辑:实际上出现了进度视图,但是在调用该方法之后很多

0 投票
1 回答
1962 浏览

ios - IOS7 Multipeer Connectivity 使用广告商的发现信息创建自定义附近浏览器列表

我在 IOS7 中使用Multipeer Connectivity Framework来制作聊天应用程序。我正在使用内置的MCBrowserViewController来显示附近对等点的列表。

我想在附近的同行列表中包含广告客户的个人资料信息。这样浏览器就会看到一个列表,其中包含有关附近对等点的图像和一些数据。

我认为可以通过在广告商初始化时通过discoveryInfo传递数据来完成。我像这样传递discoveryInfo数据:

但是有没有办法创建一个自定义的 MCBrowserViewController 来在另一端显示 discoveryInfo 而不是使用内置的?有没有人有任何示例代码?

0 投票
1 回答
1622 浏览

ios - 使用 Multipeer Connectivity 跟踪 NSProgress 的变化

我正在使用多点连接在蓝牙上发送文件。进度存储在一个名为 Progress 的变量中:

并以这种方式访问​​:

当数字更改时,如何调用方法来更新我的 UIprogressBar?

有一个方法:

但它只被调用一次......

0 投票
3 回答
2917 浏览

ios7 - 使用 Multipeer Connectivity 框架的文件传输速度慢

我正在使用 iOS 7 的 Multipeer Connectivity Framework 在两台设备之间发送文件。我正在使用 NSStreams 传输文件,因为我之前尝试使用 MCSession 的 sendData:toPeers:withMode 确实不可靠。不幸的是,我得到的传输速度非常慢,大约 100kb/s,这不适用于我正在处理的应用程序。这是我的输入和输出流委托方法,这是文件传输发生的地方。

输出流(在流的委托中)

输入流

有没有办法通过多线程或使用稍微修改的使用异步套接字的 NSStream 子类来加速此文件传输?

0 投票
0 回答
682 浏览

ios - Multipeer Connectivity iOS7 多台设备连接到同一个会话

在视图中的每个设备上都加载了我启动了一个 MCSession。然后用户可以点击他/她想要的任何设备并向该对等方发送请求:

我有两个担忧:

1)我注意到如果两个设备已经连接,并且第三个设备要求连接到这两个设备中的一个,它将自动与请求的一个和会话中已经存在的另一个连接。这三个设备将全部连接。这很好,但问题是:

2) 当三个设备之一从会话中断开连接时,使用:

似乎无法再将数据发送到另一个仍然连接的设备(也许设备仍在尝试向断开连接的设备发送一些数据,实际上丢失的对等方不会立即调用......)。

0 投票
2 回答
1290 浏览

ios - Multipeer Connectivity iOS 7中的invitePeer超时

我正在使用这种方法要求附近的设备加入会话:当我这样做时,我也开始旋转指示器

是否有在超时时刻调用的方法?如果其他设备超出范围怎么办?

编辑:

我注意到这个状态永远不会被调用:

0 投票
1 回答
1012 浏览

ios - 多点连接 - 与针一起使用

我想在我的应用程序中使用新的 iOS 7 Multipeer Connectivity,其中一个人是主机,任何人都可以加入主机。

我结合本教程和 Apple Developer Reference to Multipeer Connectivity 成功实现了它。

然而,我想要做的是添加额外的安全层,这样不仅每个人都可以加入该应用程序。我想要它,所以当一个人请求加入主持人时,他们必须输入一个随机的 4 位密码,主持人会告诉该组,以便知道它的人可以输入并加入会议。

这可能吗?由于 iOS 7 太新了,所以很难找到关于它的安迪信息。

任何帮助或建议将不胜感激。干杯

0 投票
7 回答
10487 浏览

ios - 重新连接到断开连接的对等体

我在我的应用程序中使用 iOS 7 Multipeer 框架,但我遇到了设备断开连接的问题。如果我在两个设备中打开应用程序:设备 A 和设备 B,这两个设备会自动相互连接。然而,几秒钟后,设备 A 与设备 B 断开连接。即起初连接是这样的:

几秒钟后:

设备 A 保持其连接,但设备 B 得到一个 MCSessionStateNotConnected。

这意味着 A 可以向 B 发送数据,但 B 不能回复。我试图通过检查设备是否已连接来解决此问题,如果未连接,则使用以下方法重新启动连接:

但是 didChangeState 回调只是被 MCSessionStateNotConnected 调用。

奇怪的是,如果我将应用程序 A 发送到后台,然后重新打开它,B 重新连接到它并保持连接。

Multipeer API(和文档)似乎有点稀疏,所以我假设它可以正常工作。在这种情况下,我应该如何重新连接设备?

0 投票
3 回答
2010 浏览

objective-c - 邀请停止广告的对等方时,多方连接崩溃

我有以下情况:

  • 对等点A在自定义 UI 中等待邀请(我们称之为WaitingVC)。MCNearbyServiceAdvertiser对象在应用程序启动时被初始化,广告在出现时开始( startAdvertisingPeer) WaitingVC
  • 对等BMCNearbyServiceBrowser启动并运行,也具有自定义 UI(即,不使用 Apple 提供的MCBrowserViewController)。
  • 对等点B找到对等点Abrowser:foundPeer:withDiscoveryInfo:被调用)。
  • 同时 Peer A选择关闭WaitingVC. 广告停止(stopAdvertisingPeer)。
  • 在 Peer B发现 Peer A丢失(browser:lostPeer:即被调用)之前,有几秒钟的延迟。
  • 如果在这几秒钟内,Peer B选择邀请 Peer A(似乎仍可用于 Peer B),则 Peer A崩溃(是的,被邀请的,通常停止广告)。
  • Peer B的邀请正常超时,没有问题出现。

崩溃发生在 queue 中com.apple.NSNetServices.tcplistener-queue。调用在释放 ( )dispatch_call_block_and_release时失败。EXC_BREAKPOINT

我真的想知道,这是否是 MC 框架中的错误;还是我错过了一些清理程序?对等体A仅执行以下操作:

  • 应用程序委托:创建一个MCPeerID, 存储在一个强属性中,
  • 应用程序委托:创建一个MCNearbyServiceAdvertiser,存储在一个强属性中,设置委托,
  • WaitingVC:调用startAdvertisingPeer,然后stopAdvertisingPeer在完成时调用。

无论我做什么,似乎都会发生崩溃。如果MCNearbyServiceAdvertiser对象和MCPeerID对象在关闭后被保留WaitingVC并因此被销毁WaitingVC,崩溃仍然会发生。

除此之外,一切正常(邀请程序、连接、交换数据);但是对于某些故障,这几秒钟的窗口并不是真的可以接受的。让广告商一直运行可以解决这个问题,但它只是处理症状(而且这种“同步”功能很少在应用程序中使用,所以它也是一种过度杀伤力)。

更新:

如果我在 Peer AMCAdvertiserAssistant上调用其stop方法并在 Peer B上快速连接,则使用时会发生同样的崩溃。此外,我在本教程中测试了场景:http: //techmaster.vn/2013/09/multipeer-connectivity-quick-tutorial/ - 结果是一样的:崩溃。所以我有一个强烈的怀疑,这是苹果方面的一个错误......

0 投票
4 回答
6644 浏览

ios - 支持多达 45 台设备的多点连接框架

我希望使用 Multipeer Connectivity 框架,并感谢任何关于如何最好地进行的经验的声音。

我需要一个“教练”设备和多达 45 个“玩家”设备之间的连接。它们都将在同一个空间中,但无法预测 wifi 可用性或连接。教练设备需要每秒向所有玩家设备发送一条指令(一个小数据包)。每个“玩家”需要每秒将蓝牙心率监测器的读数(非常小的数据包)发送回教练。由于每个会话的最大对等点是 8,这些想法中的任何一个都可以满足我需要的数量吗?

a) 与教练建立连接的前 7 个玩家设备宣传不同的会话类型,并允许 7 个(或者这将是 6 个?)更多的玩家加入他们。前 7 人充当其他 49 人(或 42 人?)的中间人,将教练的指示传递给教练,并将收集到的读数传回给教练。指导和心率读数之间有几秒钟的延迟不是首选,但可以。

b) 教练设备创建并宣传一个会话。在 7 个玩家设备连接后,教练设备创建另一个会话并重复 7 个以上。重复直到所有玩家设备都连接到教练。这似乎不太可能奏效,但在不了解 Multipeer Connectivity 的魔力的情况下,这是一个浮现在脑海中的选择。

c) 教练与玩家设备 1 建立会话,该设备以菊花链拓扑连接到设备 2……。当每个设备收到指令时,它会将自己的读取添加到数据包中并继续发送。最后一个设备将整个数据包返回给教练。我无法预测一轮数据需要多长时间,如果一个设备离开该组似乎也很麻烦。

任何关于使用多点连接框架为 45 台左右的设备提供经验的建议或声音将不胜感激。