GameKit框架简介、通过蓝牙实现对等网络连接
一、GameKit框架
•使用GameKit框架,可以在游戏中增加对等连接,又称对端连接或点对点连接,Peer To Peer。
•使用GameKit框架中的对等网络连接API,可以在游戏玩家之间建立一个对等网络,并在游戏/应用实例之间交换数据。
•GameKit框架可以使用蓝牙在玩家之间创建网络,玩家甚至不需要连接到互联网,就可以彼此对战。
二、通过蓝牙实现对等网络连接
•1. 为玩家双方呈现一个GKPeerPickerController,提供了一个标准的用户界面连接两台设备
•2. ViewControoler遵循GKPeerPickerControllerDelegate协议,处理来自GKPeerPickerController(对端选择器)的信息
•3. 建立连接后,使用GKSession类可以向对端设备发送数据
•4. 在receiveData:fromPeer:inSession:context代理方法中编写代码来处理接收到的数据
三、蓝牙对等网络演练——发送照片(1)
•演练目标:通过蓝牙彼此发送照片
•演练步骤:
–1. 基于照片选择项目进行扩展,仅从照片库选择照片
–2. 添加GameKit框架
–3. 创建对等连接
•3.1 实例化对端选择器
•3.2 设置代理,并遵循协议
•3.3 显示对端选择器
–4. 连接建立代理方法
peerPickerController:didConnectPeer:toSession:
•4.1记录对端连接会话
•4.2 设置数据接收处理
•4.3 关闭对端选择器
•发送数据方法
[_peerSession sendDataToAllPeers:data withDataMode:GKSendDataReliable error:&error];
•
•接收数据方法
- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context;
五、蓝牙对等网络——发送自定义对象
•如果要通过网络发送自定义对象,需要使用NSKeyedArchiver方法归档自定义对象,然后再发送归档后的NSData
•自定义对象需要遵从NSCoding协议,并实现相应的归档和恢复方法
•接收端接收到数据之后,使用NSKeyedUnarchiver方法恢复数据
四、蓝牙对等网络演练——发送照片(2)