Este proyecto es una aplicación de ejemplo para aprender a trabajar con Socket.IO en un backend Node.js y una app cliente móvil en Flutter. El proyecto permite la creación y gestión de salas de usuarios en tiempo real, donde los usuarios se unen a una sala, pueden ver la información en tiempo real y participar en la misma.
- Aprender a integrar Socket.IO con un backend en Node.js.
- Crear una aplicación móvil en Flutter que se conecte a un servidor Socket.IO.
- Practicar la gestión de estados en tiempo real con WebSockets.
- Implementar un sistema de creación de salas, gestión de usuarios y control de tiempos en un servidor Node.js.
- Socket.IO: Comunicación en tiempo real entre el backend (Node.js) y la app móvil (Flutter).
- Gestión de Salas: Los usuarios pueden unirse a una sala y visualizar información de la sala.
- Contador de Tiempo: Cada sala tiene un tiempo de expiración configurable.
- Conexión WebSocket: Utilización de
socket_io_client
en Flutter para conectar con el servidor Node.js. - Persistencia de Datos: Almacenamiento de salas de usuarios en el servidor para su posterior recuperación.
src/
├── models/ # Modelos de datos como RoomModel y UserModel
├── utils/ # Utilidades como TimeCountdown
├── server.js # Punto de entrada para el servidor Socket.IO
└── package.json # Dependencias y scripts de Node.js
lib/
├── main.dart # Punto de entrada de la app
├── models/ # Modelos de datos como RoomModel y UserModel
├── services/ # Servicios para la conexión WebSocket
-
Asegúrate de tener Node.js instalado. Si no lo tienes, sigue las instrucciones en la documentación oficial.
-
Clona este repositorio:
git clone https://github.com/BastianNaitsab/sistema_de_salas_websocket_flutter
- Navega al directorio del servidor:
cd socketio_server_nodejs
- Instala las dependencias:
npm install
- Ejecuta el servidor:
node src/server.js
El servidor escuchará en el puerto 3000
.
-
Asegúrate de tener Flutter instalado. Si no lo tienes, sigue las instrucciones en la documentación oficial.
-
Clona este repositorio:
git clone https://github.com/BastianNaitsab/sistema_de_salas_websocket_flutter
- Navega al directorio del cliente Flutter:
cd socketio_rooms_flutter
- Instala las dependencias:
flutter pub get
- Ejecuta el servidor:
flutter run
La app se ejecutará en un emulador o dispositivo físico y se conectará al servidor Socket.IO.
- Node.js: Backend en JavaScript.
- Socket.IO: Comunicación en tiempo real para WebSockets.
- Flutter SDK: Framework para desarrollo móvil.
- Dart: Lenguaje de programación de Flutter.
- VS Code: Editor de código.
- Android Studio: Emulador Android.
- 🌟 Cómo integrar Socket.IO en un servidor Node.js y conectarlo a un cliente Flutter usando WebSockets.
- 🌟 Cómo gestionar salas de usuarios en tiempo real.
- 🌟 Implementación de un sistema de contadores de tiempo en el servidor.
- 🌟 Comunicación entre el backend y el frontend en una app Flutter utilizando WebSockets.
- Mejorar la gestión de usuarios y salas, agregando persistencia en base de datos.
- Añadir autenticación de usuarios.
- Mejorar la UI/UX de la aplicación Flutter.
- Implementar pruebas unitarias y funcionales.
Este proyecto es principalmente para aprendizaje personal, pero siéntete libre de proponer mejoras o sugerencias.
Bastian Naitsab - devmentesacontacto@gmail.com
GitHub: BastianNaitsab