import MultipeerConnectivity import Foundation @Observable final class NoteEditingSessionServer: NSObject { private let session: MCSession private let browser: MCNearbyServiceBrowser init(username: String) { let peer = MCPeerID(displayName: username) browser = .init(peer: peer, serviceType: "peered") session = .init(peer: peer) super.init() browser.delegate = self } func startServer() { browser.startBrowsingForPeers() } func stopServer() { browser.stopBrowsingForPeers() } } extension NoteEditingSessionServer: MCNearbyServiceBrowserDelegate { func browser( _ browser: MCNearbyServiceBrowser, foundPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]? ) { browser.invitePeer(peerID, to: session, withContext: nil, timeout: 30) print("seeing peer \(peerID.displayName)") } func browser(_ browser: MCNearbyServiceBrowser, lostPeer peerID: MCPeerID) {} }