Cómo distinguir el host del cliente en iPhone bluetooth con GameKit
-
10-07-2019 - |
Pregunta
He creado un juego multijugador con GameKit Framework donde 2 iPhones / iPods pueden conectarse entre sí a través de Bluetooth y jugar.
Estoy pensando en una forma de elegir qué dispositivo podrá jugar primero. Entonces, la solución lógica es elegir el host de la conexión. ¿Hay incluso un servidor y un cliente en la GKSession? ¿Son todos iguales? ¿Qué ruta debo tomar para lograr lo que necesito?
Solución
Básicamente, depende de usted configurar su sesión como desee.
De la documentación de Apple:
Las sesiones descubren otros pares en el red basada en un modo de sesión que se establece cuando la sesión es inicializado Tu aplicación puede configurar la sesión para ser un servidor, que anuncia un tipo de servicio en el red; un cliente, que busca servidores de publicidad; o un compañero, que se anuncia como un servidor y busca como un cliente simultáneamente.
Una copia de su solicitud que actúa como el servidor inicializa la sesión por vocación initWithSessionID: displayName: sessionMode: con un modo de sesión de GKSessionModeServer o GKSessionModePeer. Después de la la aplicación configura la sesión, anuncia el servicio configurando el La propiedad isAvailable de la sesión es SÍ.
Una copia de su solicitud que actúa como el cliente inicializa la sesión por vocación initWithSessionID: displayName: sessionMode: con un modo de sesión de GKSessionModeClient o GKSessionModePeer. Después de configurar la sesión, su aplicación busca la red para servidores publicitarios por configurar la sesión está disponible propiedad a SI. Si la sesión es configurado con el GKSessionModePeer modo sesión también se anuncia como servidor, como se describió anteriormente.
Por lo tanto, si usa GKSessionModePeer para inicializar la sesión, tiene pares (que actúan como servidor y cliente). Si desea distinguir un servidor de sus clientes, inicialícelo con GKSessionModeServer.
Saludos cordiales.