Come distinguere l'host dal client in bluetooth per iPhone con GameKit
-
10-07-2019 - |
Domanda
Ho realizzato un gioco multiplayer usando il GameKit Framework in cui 2 iPhone / iPod possono connettersi tra loro tramite bluetooth e giocare.
Sto pensando a un modo per scegliere quale dispositivo sarà in grado di giocare per primo. Quindi la soluzione logica è scegliere l'host della connessione. C'è anche un server e un client in GKSession? Sono tutti coetanei? Quale percorso devo prendere per raggiungere ciò di cui ho bisogno?
Soluzione
Fondamentalmente, spetta a te configurare la sessione come preferisci.
Dalla documentazione di Apple:
Le sessioni scoprono altri peer sul rete basata su una modalità di sessione che è impostato quando la sessione è inizializzato. La tua applicazione può configurare la sessione come server, che pubblicizza un tipo di servizio sul Rete; un client che cerca server pubblicitari; o un pari, che pubblicizza come un server e cerca come un cliente contemporaneamente.
Una copia della domanda che funge da il server inizializza la sessione di chiamata initWithSessionID: displayName: SessionMode: con una modalità di sessione di entrambi GKSessionModeServer o GKSessionModePeer. Dopo il l'applicazione configura la sessione pubblicizza il servizio impostando il La proprietà isAvailable della sessione su YES.
Una copia della domanda che funge da il client inizializza la sessione di chiamata initWithSessionID: displayName: SessionMode: con una modalità di sessione di entrambi GKSessionModeClient o GKSessionModePeer. Dopo la configurazione la sessione, la tua applicazione cerca la rete di server pubblicitari di l'impostazione della sessione è Disponibile proprietà a SÌ. Se la sessione è configurato con GKSessionModePeer modalità sessione pubblicizza anche se stessa come server, come descritto sopra.
Pertanto, se si utilizza GKSessionModePeer per inizializzare la sessione, si hanno peer (che fungono sia da server che da client). Se vuoi distinguere un server dai suoi client, inizializzalo con GKSessionModeServer.
Cordiali saluti.