Haciendo pruebas con Flutter y Socket.IO para la comunicación en tiempo real, hemos detectado ciertos errores y para ellos hemos intentado implementar diferentes soluciones, las cuales le han funcionado a varias personas pero a mí no. Aún así las dejamos por aquí para que puedas implementarlas y ver cual puede ser la tuya:
Cambiar la versión de Socket utilizada en tu versión de node a la siguiente:
Si usas un dispositivo físico y no un emulador:
Cuando tengas el dispositivo lanzado con tu proyecto, ejecuta este comando en la terminal y después haz un hot-restart
Utilizar las siguientes versiones en Flutter:
El problema de utilizar estas versiones es que si usas null safety de Flutter no es compatible.
Cambiar la versión nuevamente en Node para evitar vulnerabilidades
Cambiar la ruta de localhost por tu IP o por la 10.xxxx:
Actualizar la manera de poner las opciones de conexión
Cambiamos:
{
'transports': ['websocket'],
'autoConnect': true
}
por esto:
OptionBuilder()
.setTransports(['websocket'])
.enableAutoConnect() // for Flutter or Dart VM
.build());
No probar en el dispositivo físico sino en un emulador.
Al utilizar el emulador me conectaba perfectamente , no con localhost pero si con la ip y con 10.0xxx.
SOLUCIÓN QUE FUNCIONA
- EMULADOR
- Cambiar la ruta de localhost por la IP de tu dispositivo o por 10.0.2.2
- DISPOSITIVO FÍSICO
- Conectarte a la red wifi donde estés desarrollando el proyecto
- NO funciona localhost ni 10.0.2.2
- SÍ funciona con la IP local
- Usar en node la versión de socket 2.4.1 que no tiene errores
El problema de que no se conectara desde mi dispositivo móvil era porque no detectaba la ip , ya que al estar conectado por datos estaba en otra red .
¿Quieres compartirlo en las redes sociales?
No hay comentarios, anímate y deja el primero.