Saltar al contenido principal

InternetConectionManager

Resumen

Namespace Imova.Flux. Clase InternetConectionManager : MonoBehaviour, singleton. Su responsabilidad es determinar si el dispositivo tiene conectividad a internet, tanto bajo demanda como mediante chequeos asíncronos, para que otros sistemas (como LocalBackupManager) puedan decidir si operar en modo offline o sincronizar con el backend.

Cuándo usarla

  • Antes de intentar una operación de red (login, carga de secuencias, posteo de resultados de sesión) para decidir si conviene degradar a un flujo local/offline.
  • Para suscribirse a OnConnectionCheck y reaccionar globalmente cuando cambia el estado de conectividad (por ejemplo, para disparar la restauración de datos respaldados localmente).

Métodos

bool IsConnectedToInternet()

No se recomienda su uso.

Devuelve de forma síncrona una estimación de si hay conectividad a internet. No se recomienda su uso porque es una verificación poco confiable (no realiza una petición de red real que confirme conectividad efectiva contra un servidor externo, solo una revisión local del estado de la interfaz de red del dispositivo), por lo que puede reportar falsos positivos en redes conectadas pero sin salida real a internet. Se prefiere CheckConnectionWithCallback, que sí confirma conectividad real de forma asíncrona.

void CheckConnectionWithCallback(Action<bool> callback, int timeOut = 5)

Realiza una verificación asíncrona de conectividad real efectuando una petición (ping/HEAD) contra http://google.com, con un tiempo de espera configurable (timeOut, en segundos). Al finalizar, invoca callback con true o false según si la petición tuvo éxito dentro del tiempo límite. Es el método recomendado para decidir de forma confiable si hay conectividad antes de operar contra el backend.

Eventos

EventoDelegateSe dispara cuando...
OnConnectionCheck (estático)delegate void OnConnectionCheckEvent(bool isConnected)Se completa una verificación de conectividad (por ejemplo, tras CheckConnectionWithCallback), informando a todos los suscriptores el resultado.

Ejemplo de código

InternetConectionManager.Instance.CheckConnectionWithCallback(isConnected =>
{
if (isConnected)
{
// proceder con operaciones de red
}
else
{
// degradar a modo offline / usar LocalBackupManager
}
}, timeOut: 5);

Suscripción al evento estático:

private void OnEnable()
{
InternetConectionManager.OnConnectionCheck += HandleConnectionCheck;
}

private void HandleConnectionCheck(bool isConnected)
{
Debug.Log($"Conectividad: {isConnected}");
}

Ver también