logo

Socket.IO junto con Flutter

agosto 17, 2021, Sin comentarios

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:

  • npm uninstall socket.io
  • npm install socket.io@2.3.0
  • "socket.io":"^2.3.0" en package.json

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

  • adb reverse tcp:8080 tcp:8080

Utilizar las siguientes versiones en Flutter:

  • 0.9.xx
  • socket_io_client: ^0.9.12

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

  • npm i socket.io@2.4.1
  • "socket.io": "^2.4.1"

Cambiar la ruta de localhost por tu IP o por la 10.xxxx:

  • localhost : 'http://localhost:/'
  • IP : 'http://:/'
  • IP 10xx : 'http://10.0.2.2:/'

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?

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

No hay comentarios, anímate y deja el primero.

SERVICIOS
PRODUCTOS
clicktec logolocustec
CONTACTO
Horario: Lunes a viernes de 8.30 a 14.00h y 16.00 a 19.30h
Av. de Andalucía, 56, B, bajo, 23006 Jaén – Españainfo@deditec.es(+34) 953 195 077
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram