版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.02.04 |
前言
MultipeerConnectivity
框架支持点对点连接和附近设备的发现。是iOS 7 推出的众多新框架的一种,它拓宽了操作系统中应用的范围。其目的是使开发者可以创建通过Wi-Fi或蓝牙在近距离建立连接的应用。是在近距离设备间建立互动,交换数据和其他资源的很好的简单工具。接下来几篇我们就一起看一下这个框架。
Overview
下面先看一下该框架的基本信息。
Multipeer Connectivity
框架支持发现附近设备提供的服务,并支持通过基于消息的数据,流式数据和资源(如文件)与这些服务进行通信。 在iOS中,框架使用基础设施Wi-Fi网络,点对点Wi-Fi和蓝牙个人区域网络作为底层传输。 在macOS和tvOS中,它使用基础设施Wi-Fi,点对点Wi-Fi和以太网。
下面看一下该框架的基本结构。
Architecture - 结构
使用Multipeer Connectivity
框架时,您的应用程序必须与多种类型的对象进行交互:
会话对象(MCSession)支持连接的点对点设备之间的通信。您的应用程序创建一个会话,并在对等方接受邀请时添加对等点,并在邀请其他对等点连接时创建一个会话。会话对象维护一组代表连接到会话的对等体的对等ID对象。
广告对象(MCNearbyServiceAdvertiser)会告诉附近的peers,您的应用程序愿意加入指定类型的会话。广告商对象使用单个本地对等对象来向其他附近设备提供将设备及其用户标识的信息。
广告助理对象(MCAdvertiserAssistant)提供与广告对象相同的功能,但也提供允许用户接受邀请的标准用户界面。如果您希望提供自己的用户界面,或者希望对显示的邀请进行附加的程序控制,请直接使用广告对象。
浏览器对象(MCNearbyServiceBrowser)允许您的应用程序以编程方式搜索附近支持特定类型会话的设备。
浏览器视图控制器对象(MCBrowserViewController)提供了一个标准的用户界面,允许用户选择附近的对等点添加到会话中。
Peers ID(MCPeerID)唯一标识设备上运行的应用程序到附近的对等。
Discovery Phase and Session Phase - 发现阶段和会话阶段
这个框架分两个阶段使用:发现阶段和会话阶段。
在发现阶段,您的应用程序使用MCNearbyServiceBrowser对象浏览附近的对等点,可以使用MCBrowserViewController对象来显示用户界面。
该应用程序还使用MCNearbyServiceAdvertiser对象或MCAdvertiserAssistant对象来告知附近的对等方,该对象可用,以便其他附近设备上的应用程序可以邀请其参加会话。
在发现阶段,您的应用与其他对等点的通信收到了限制,它可以访问附近其他客户端提供的discoveryInfo
数据以及其他对等方在邀请其加入会话时提供的任何上下文数据。
在用户选择将哪个对等点添加到会话之后,应用邀请这些对等点加入会话。运行在附近设备上的应用程序可以选择是否接受或拒绝邀请,并可以要求他们的用户许可。
如果对方接受邀请,则浏览器与广告建立连接,并开始会话阶段。在此阶段,您的应用可以与会话中的一个或多个对等方进行直接通信。当对等体加入会话和离开会话时,框架通过委托回调通知您的应用程序。
如果应用程序移到后台,框架会停止广告和浏览,并断开任何打开的会话。回到前台后,框架自动恢复广告和浏览,但是开发者必须重新建立任何关闭的会话。
Topics
1. Classes
-
-
MCAdvertiserAssistant
是一个便利的类,它处理广告,向用户呈现传入的邀请,并处理用户的回应。 当你的应用程序不需要程序控制的邀请过程时,使用这个类来提供一个用户界面来处理邀请。
-
-
-
MCBrowserViewController
类将附近的设备呈现给用户,并允许用户邀请附近的设备进行会话。 要在iOS或tvOS中使用此类,请调用底层UIViewController
类(prepareForSegue:sender:
和performSegueWithIdentifier:sender:
对于storyboard或 presentViewController:animated:completion:
和 dismissViewControllerAnimated:completion:
对于基于nib的视图)来提交和销毁视图控制器。 在macOS中,使用类似的NSViewController
方法presentViewControllerAsSheet:
和dismissViewController:
来代替。
-
-
-
MCNearbyServiceAdvertiser
类将为您的应用程序通过Multipeer Connectivity
框架提供的特定服务发布广告,并通知其代表关于来自附近对等方的邀请。
-
-
- 使用基础器件Wi-Fi,点对点Wi-Fi,蓝牙(在iOS)或以太网(在macOS和tvOS中)搜索(按服务类型)附近设备提供的服务,并且可以轻松邀请 设备连接到
Multipeer Connectivity
会话(MCSession)
。
- 使用基础器件Wi-Fi,点对点Wi-Fi,蓝牙(在iOS)或以太网(在macOS和tvOS中)搜索(按服务类型)附近设备提供的服务,并且可以轻松邀请 设备连接到
-
-
MCPeerID
对象表示多对话会话中的对等体
-
-
-
MCSession
对象启用并管理Multipeer Connectivity会话中所有对等端之间的通信。
-
2. Protocols
-
-
MCAdvertiserAssistantDelegate
协议描述了MCAdvertiserAssistant
实例的委托对象可以实现的处理广告相关事件的方法。
-
-
MCBrowserViewControllerDelegate
-
MCBrowserViewControllerDelegate
协议定义了委托对象可以实现的处理与MCBrowserViewController
类有关的事件的方法。
-
-
MCNearbyServiceAdvertiserDelegate
-
MCNearbyServiceAdvertiserDelegate
协议描述MCNearbyServiceAdvertiser
实例的委托对象可以实现的用于处理来自MCNearbyServiceAdvertiser
类的事件的方法。
-
-
MCNearbyServiceBrowserDelegate
-
MCNearbyServiceBrowserDelegate
协议定义一个MCNearbyServiceBrowser
对象的委托可以实现处理浏览器相关事件的方法。
-
-
-
MCSessionDelegate
协议定义了MCSession类的委托可以实现的方法来处理与会话相关的事件。 有关更多信息,请参阅MCSession。
-
3. Reference
后记
本篇已结束,后面更精彩~~~