Как только соединения между устройствами будут установлены, вы можете начать обмен данными. Обмениваемые данные могут принимать форму простого массива байтов, например короткого текстового сообщения; файл, например фотография или видео; или поток, например аудиопоток с микрофона устройства.
Данные можно отправлять с помощью следующих методов экземпляра диспетчера соединений:
-
send(_:to:)
-
startStream(_:to:)
-
sendResource(at:withName:to:)
При получении данных можно использовать следующие методы делегата диспетчера соединений.
Быстрый
extension Example: ConnectionManagerDelegate {
func connectionManager(
_ connectionManager: ConnectionManager, didReceive data: Data,
withID payloadID: PayloadID, from endpointID: EndpointID) {
// A simple byte payload has been received. This will always include the full data.
}
func connectionManager(
_ connectionManager: ConnectionManager, didReceive stream: InputStream,
withID payloadID: PayloadID, from endpointID: EndpointID,
cancellationToken token: CancellationToken) {
// We have received a readable stream.
}
func connectionManager(
_ connectionManager: ConnectionManager,
didStartReceivingResourceWithID payloadID: PayloadID,
from endpointID: EndpointID, at localURL: URL,
withName name: String, cancellationToken token: CancellationToken) {
// We have started receiving a file. We will receive a separate transfer update
// event when complete.
}
func connectionManager(
_ connectionManager: ConnectionManager,
didReceiveTransferUpdate update: TransferUpdate,
from endpointID: EndpointID, forPayload payloadID: PayloadID) {
// A success, failure, cancelation or progress update.
}
}