SwiftUI MultipeerConnectivity receiving two different data from a single device

Project Github link

You can download and test my project.

There is a video link in the github project about the use of the project.

After initially establishing a connection between both devices, I successfully show the same word on both devices.

After choosing, the variables der, die, das are replaced by the word.
I know the problem but I don't know how to fix it.
This is what I want to do. Showing the same word on both devices after the devices are paired. Checking the answers after the selection has been made on both devices. A small quiz contest.
I want to compare the answer from both devices. I don't know how to do this.
for example; Suppose the answer "das" is correct for the first word. The user will mark "das" on the first device, and the user will mark "der" on the second device. the first device will get +1 points, the second device will not get any points.
Here is the problem: I apply two different send operations to a single data.

Problem is here

I am sending the same data to two different variables. How can I get two different data?

Code Block
 func session(_ session: MCSession, didReceive data: Data, fromPeer peerID: MCPeerID) {
        if let stringData = String(data: data, encoding: .utf8) {
            DispatchQueue.main.async {
                self.randomWord = stringData
                self.selectedArtikel = stringData
            }
        }
    }


GameViewModel

Code Block import MultipeerConnectivity
class GameViewModel: NSObject, ObservableObject {
    
    @Published var words: [Word] = []
    @Published var randomWord: String = ""
    @Published var selectedArtikel = ""
    private var connectFourServiceType = "artikel"
    private var peerID: MCPeerID?
    private var session: MCSession?
    private var nearByServiceAdvertiser: MCNearbyServiceAdvertiser?
    
    override init() {
        super.init()
        peerID = MCPeerID(displayName: UIDevice.current.name)
        session = MCSession(peer: peerID ?? MCPeerID(displayName: UIDevice.current.name), securityIdentity: nil, encryptionPreference: .required)
        self.getWords()
        self.getRandomWord()
        session?.delegate = self
    }
    
    func advertise() {
        guard let peerID = peerID else { return }
        nearByServiceAdvertiser = MCNearbyServiceAdvertiser(peer: peerID, discoveryInfo: nil, serviceType: connectFourServiceType)
        nearByServiceAdvertiser?.delegate = self
        nearByServiceAdvertiser?.startAdvertisingPeer()
    }
    
    func invite() {
        guard let session = session else { return }
        let browser = MCBrowserViewController(serviceType: connectFourServiceType, session: session)
        browser.delegate = self
        UIApplication.shared.windows.first?.rootViewController?.present(browser, animated: true)
    }
    
    func randomWordSession() {
        guard let word = randomWord.data(using: .utf8) else { return }
        guard let pears = session?.connectedPeers else { return }
        do {
            try session?.send(word, toPeers: pears, with: .reliable)
        } catch {
            print(error.localizedDescription)
        }
    }
    
    func selectedSendSession() {
        guard let data = selectedArtikel.data(using: .utf8) else { return }
        guard let peers = session?.connectedPeers else { return }
        do {
            try session?.send(data, toPeers: peers, with: .reliable)
        } catch {
            print(error.localizedDescription)
        }
    }
    
    func getRandomWord() {
        DispatchQueue.main.async {
            let randomNumber = Int.random(in: 0..<self.words.count)
            self.randomWord = self.words[randomNumber].word
        }
    }
    
    func getWords() {
        if let url = Bundle.main.url(forResource: "derdiedas", withExtension: "json") {
            do {
                let data = try Data(contentsOf: url)
                let decoder = JSONDecoder()
                let word = try decoder.decode(WordContainer.self, from: data)
                self.words = word.words
            } catch {
                print("error:\(error)")
            }
        }
    }
}
extension GameViewModel: MCSessionDelegate {
    func session(_ session: MCSession, peer peerID: MCPeerID, didChange state: MCSessionState) {
        switch state {
        case .notConnected:
            print("\(peerID) state: not connected")
            
        case .connecting:
            print("\(peerID) state: connecting")
            
            
        case .connected:
            print("\(peerID) state: connected")
            
            
        @unknown default:
            print("\(peerID) state: unknown")
        }
    }
    
    func session(_ session: MCSession, didReceive data: Data, fromPeer peerID: MCPeerID) {
        if let stringData = String(data: data, encoding: .utf8) {
            DispatchQueue.main.async {
                self.randomWord = stringData
                self.selectedArtikel = stringData
            }
        }
    }
    
    func session(_ session: MCSession, didReceive stream: InputStream, withName streamName: String, fromPeer peerID: MCPeerID) {
        
    }
    
    func session(_ session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, with progress: Progress) {
        
    }
    
    func session(_ session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, at localURL: URL?, withError error: Error?) {
    }
}
extension GameViewModel: MCNearbyServiceAdvertiserDelegate {
    func advertiser(_ advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: Data?, invitationHandler: @escaping (Bool, MCSession?) -> Void) {
        invitationHandler(true, session)
    }
}
extension GameViewModel: MCBrowserViewControllerDelegate {
    func browserViewControllerDidFinish(_ browserViewController: MCBrowserViewController) {
        browserViewController.dismiss(animated: true)
    }
    
    func browserViewControllerWasCancelled(_ browserViewController: MCBrowserViewController) {
        browserViewController.dismiss(animated: true)
    }
}



SwiftUI MultipeerConnectivity receiving two different data from a single device
 
 
Q