// // NoteEditingSessionClient.swift // Peered // // Created by Oskar Chybowski on 05/10/2025. // import MultipeerConnectivity import Foundation @Observable final class NoteEditingSessionClient: NSObject { private let session: MCSession private let advertiser: MCNearbyServiceAdvertiser private let ownPeer: MCPeerID init(peer: MCPeerID) { ownPeer = peer session = MCSession( peer: peer, securityIdentity: nil, encryptionPreference: .required ) advertiser = MCNearbyServiceAdvertiser( peer: peer, discoveryInfo: [:], serviceType: "peered" ) super.init() advertiser.delegate = self } func startBrowsingForNotes() { advertiser.startAdvertisingPeer() } func stopBrowsingForNotes() { advertiser.stopAdvertisingPeer() } } extension NoteEditingSessionClient: MCNearbyServiceAdvertiserDelegate { func advertiser( _ advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: Data?, invitationHandler: @escaping (Bool, MCSession?) -> Void ) { DispatchQueue.main.async { invitationHandler(true, self.session) } } }