iphone - movil - fortnite mobile android
GameKit: ¿Cuál es el tipo de conexión al usar GKSession sin GKPeerPickerController: Resuelto (1)
¿Sabes si GKPeerPicker se comporta de manera similar? Me refiero a si la selección de modo NEAR le permite conectarse a través de wifi / bluetooth?
Sospecho que el modo INTERNET es para conectarse a servidores remotos usando TCP / IP. Saludos
Estoy implementando un programa de chat basado en BlueTooth
y BlueTooth
para iPhone
. Para fines de conexión, estoy usando GameKit
. Pero debido a alguna aplicación de requisitos especiales, no puedo usar el GKPeerPickerController
predeterminado. Entonces, en su lugar, creé un combo GKSession
y GKSessionDelegate
para detectar a los pares. Después de que se encuentren, pueden chatear.
Ahora he probado la funcionalidad de chat en tres mac-minis
usando un simulator
, un simulador y un iPod
, un iPhone
y un Simulator
. Puedo chatear en todos los escenarios anteriores. Pero de alguna forma el iPhone
y el iPod
no se detectarán entre sí.
También tengo curiosidad sobre el tipo de conexión que está sucediendo entre todos estos dispositivos. Porque, teóricamente, GameKit
admite ambos, BlueTooth
y WiFi
. Ahora el problema es que GKPeerPickerController
elige uno entre BlueTooth
y WiFi
(desafortunadamente, la implementación de WiFi
no está documentada en ningún lado). Está bien, pero ¿qué pasa con el escenario personalizado cuando uno implementa su propio GKSession
y GKSessionDelegate
Combo? Cuando uno crea Objeto GKSession
utilizando el único método init
disponible:
– initWithSessionID:displayName:sessionMode:
La única opción de configuración que esto proporciona es sessionMode
pero solo tiene tres opciones
GKSessionModeServer,
GKSessionModeClient,
GKSessionModePeer,
Ninguno de los cuales indica elección de conexión entre Bluetooth
y WiFi
.
Pero he desactivado bluetooth
en el iPod
y lo he probado con un mac-mini
, así que creo que esto es usando WiFi
. También en el registro obtengo la siguiente línea:
DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.
La parte DNSServiceRegister
y udp
me hace pensar que la comunicación está pasando por TCP/IP
.
Entonces, esto significa que cuando empiezo con GKSession
y GKSessionDelegate
el método de comunicación predeterminado es solo WiFi, o admite WiFi
y bluetooth
ambos al mismo tiempo (aunque nunca recibí una sola indicación de que la conexión BlueTooth
estuviera sucediendo).
Pero se supone que GameKit
se debe principalmente a BlueTooth
¿ BlueTooth
? ¿Alguien puede aclarar la situación sobre qué está pasando exactamente?
¿También ha visto algún código de muestra donde alguien haya implementado la interfaz WiFi para GKPeerPickerController
?
Actualizar:
OK Lo encontré yo mismo. GKSession
implementaciones personalizadas de GKSession
y GKSessionDelegate
, como mencioné en la pregunta, funcionan tanto para bluetooth
como para WiFi
. En realidad, el iPhone (JailBroked)
que estoy usando tenía algunos problemas con BlueTooth
y posiblemente eso estaba impidiendo que Gamekit
funcionara correctamente. Después de reiniciar el teléfono y apagar el modo Airplane
, el bluetooth
encendido varias veces hizo que el bluetooth
funcionara en el teléfono. Ahora la aplicación funciona bien tanto en modo WiFi
como en modo BlueTooth
.