Skip to content

BastianNaitsab/flutter_websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Flutter WebSocket Client-Server Project

Flutter Dart License

Screen Timer

📚 Descripción

Este proyecto tiene como objetivo crear una comunicación en tiempo real entre un cliente en Flutter y un servidor en Node.js. El servidor está implementado con Socket.IO para gestionar las conexiones WebSocket, mientras que el cliente en Flutter utiliza el paquete socket_io_client para conectarse al servidor y enviar/recibir mensajes.

🎯 Objetivo del Proyecto

  • Implementar un cliente en Flutter que se conecta a un servidor WebSocket.
  • Crear un servidor WebSocket en Node.js utilizando Socket.IO.
  • Gestionar eventos personalizados de comunicación, como enviar mensajes a todos los usuarios o a un solo usuario.
  • Mejorar la estructura y flujo de datos del cliente y servidor.

🛠️ Características

  • Servidor WebSocket en Node.js: Usando Socket.IO para gestionar las conexiones y mensajes.
  • Cliente WebSocket en Flutter: Usando el paquete socket_io_client para la conexión.
  • Mensajes Bidireccionales: Soporte para enviar y recibir mensajes en tiempo real.
  • Envío de mensajes complejos: Capacidad para enviar objetos estructurados como mensajes, incluyendo un campo user y message.
  • StreamBuilder para actualización en tiempo real: En el cliente, los mensajes se muestran en tiempo real mediante StreamBuilder de Flutter.

📂 Estructura del Proyecto

Flutter

lib/
├── main.dart                      # Código principal de la aplicación Flutter
├── services/
│   ├── websocket_service.dart     # Lógica de conexión y comunicación con WebSocket
├── models/
│   ├── message.dart               # Modelo de datos de los mensajes

NodeJs

src/
├── models/
│   ├── Message.js                 # Modelo de datos de los mensajes
├── server.js                      # Código principal del servidor WebSocket

🚀 Cómo Ejecutar el Proyecto

Servidor

  1. Asegúrate de tener Node.js instalado. Si no, sigue las instrucciones en la documentación oficial.

  2. Clona este repositorio:

git clone https://github.com/BastianNaitsab/flutter_websocket
  1. Navega al directorio del servidor:
cd socketio_server_nodejs
  1. Instala las dependencias:
npm install
  1. Ejecuta el servidor:
node src/server.js

Cliente

  1. Asegúrate de tener Dart instalado.

  2. Navega al directorio del cliente:

cd socketio_client_flutter
  1. Instala las dependencias:
flutter pub get
  1. Ejecuta el cliente:
flutter run

🧰 Herramientas Usadas

  • Node.js: Entorno de ejecución JavaScript para el servidor.
  • **Socket.IO: Librería para manejar WebSockets en el servidor.
  • Flutter: Framework y lenguaje para crear la interfaz de usuario y manejar la lógica del cliente.
  • socketio_client: Paquete Dart para conectarse al servidor de WebSocket (Socket.IO).
  • VS Code: Entorno de desarrollo para ambos, cliente y servidor.

📖 Lo que He Aprendido

  • 🌟 Cómo utilizar Socket.IO para establecer una conexión WebSocket bidireccional entre un servidor y un cliente.
  • 🌟 Cómo manejar mensajes complejos entre el cliente y el servidor utilizando JSON.
  • 🌟 Cómo gestionar eventos personalizados como message y messageEveryone con Flutter y Node.js.
  • 🌟 Cómo actualizar la interfaz de usuario en Flutter en tiempo real con StreamBuilder.

📋 Próximos Pasos

  • Mejorar el manejo de errores en el servidor y cliente.
  • Implementar reconexiones automáticas en caso de desconexión.
  • Implementar pruebas unitarias y de integración.

🤝 Contribuciones

Este proyecto es principalmente para aprendizaje personal, pero siéntete libre de proponer mejoras o sugerencias.

📞 Contacto

Bastian Naitsab - devmentesacontacto@gmail.com
GitHub: DevmenteSac

About

Websocket Flutter con Socket IO

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy