{"id":21656814,"url":"https://github.com/drako01/websocket-java","last_synced_at":"2025-03-20T05:17:46.129Z","repository":{"id":263827755,"uuid":"891502895","full_name":"Drako01/websocket-java","owner":"Drako01","description":"Spring Boot WebSocket Server","archived":false,"fork":false,"pushed_at":"2024-11-20T13:22:24.000Z","size":47,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T05:17:39.104Z","etag":null,"topics":["api-client","java","spring-boot","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Drako01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-20T13:01:43.000Z","updated_at":"2024-11-20T13:37:01.000Z","dependencies_parsed_at":"2024-11-20T14:35:29.743Z","dependency_job_id":null,"html_url":"https://github.com/Drako01/websocket-java","commit_stats":null,"previous_names":["drako01/websocket-java"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fwebsocket-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fwebsocket-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fwebsocket-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drako01%2Fwebsocket-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Drako01","download_url":"https://codeload.github.com/Drako01/websocket-java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244554123,"owners_count":20471173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","java","spring-boot","websocket"],"created_at":"2024-11-25T09:17:38.929Z","updated_at":"2025-03-20T05:17:46.109Z","avatar_url":"https://github.com/Drako01.png","language":"Java","readme":"\u003cbr\u003e\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://1000logos.net/wp-content/uploads/2020/09/Java-Logo.png\" alt=\"Java\" width=300\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \n \u003ca href=\"https://www.w3.org/html/\" target=\"_blank\"\u003e \n     \u003cimg src=\"./websockets.png\" alt=\"WebSocket\" height=\"100\"/\u003e\u003c/a\u003e \n    \u0026nbsp \u0026nbsp\n \u003ca href=\"https://www.w3schools.com/css/\" target=\"_blank\"\u003e \n \u003cimg src=\"https://miro.medium.com/v2/resize:fit:1100/0*5FEJ7emIEAxZRCQF\" alt=\"spring-boot\"  height=\"100\"/\u003e\u003c/a\u003e \n\u003c/p\u003e\n\n---\n\n# Spring Boot WebSocket Server\n\nEste proyecto es un servidor WebSocket básico desarrollado en **Spring Boot**, diseñado para demostrar cómo establecer conexiones WebSocket en tiempo real. Incluye soporte para manejar mensajes entre clientes y el servidor.\n\n## 📋 Requisitos\n\nAsegúrate de tener lo siguiente instalado:\n\n- **Java 17** o superior\n- **Maven** (o cualquier otra herramienta para construir proyectos Java)\n- **Postman** o una herramienta para probar WebSockets (como WebSocket Tester)\n\n## 🚀 Instalación y ejecución\n\n1. **Clona el repositorio:**\n\n   ```bash\n   git clone https://github.com/Drako01/websocket-java.git\n   cd websocket-java\n   ```\n\n2. **Construye el proyecto:**\n\n   ```bash\n   mvn clean install\n   ```\n\n3. **Ejecuta la aplicación:**\n\n   ```bash\n   mvn spring-boot:run\n   ```\n\n   El servidor estará disponible en: `ws://localhost:8080/chat`.\n\n## 🛠️ Configuración\n\n### Endpoint principal\n\n- **WebSocket URL:**  \n  `ws://localhost:8080/chat`\n\n### Estructura del servidor\n\n1. **Configuración del WebSocket:**\n   La clase `WebSocketConfig` configura el endpoint `/chat` como el punto de entrada para las conexiones WebSocket.\n\n2. **Manejador de mensajes:**\n   La clase `ChatWebSocketHandler` es responsable de manejar los eventos de conexión, mensajes enviados por los clientes y desconexiones.\n\n### Comportamiento del servidor\n\n- Cuando un cliente se conecta, el servidor registra la conexión.\n- Los mensajes enviados por un cliente se retransmiten a todos los demás clientes conectados.\n- Cuando un cliente se desconecta, su sesión se elimina del registro.\n\n## 🔗 Probando la conexión\n\n### Usando Postman\n\n1. Abre Postman y selecciona **WebSocket Request**.\n2. Introduce la URL del servidor WebSocket:  \n   `ws://localhost:8080/chat`.\n3. Haz clic en **Connect**.\n4. Envía un mensaje desde el campo de texto, por ejemplo:  \n   ```plaintext\n   Hola servidor WebSocket!\n   ```\n5. Observa la respuesta del servidor y verifica que otros clientes conectados reciben el mensaje.\n\n### Usando WebSocket Tester (opcional)\n\n1. Accede a [WebSocket Tester](https://www.websocket.org/echo.html).\n2. Introduce la URL del servidor:  \n   `ws://localhost:8080/chat`.\n3. Conéctate y envía un mensaje.\n\n## 📂 Estructura del proyecto\n\n```plaintext\nsrc/main/java/\n└── com.armotusitio/\n    ├── config/\n    │   └── WebSocketConfig.java   # Configuración de WebSocket\n    ├── handler/\n    │   └── ChatWebSocketHandler.java   # Lógica principal del WebSocket\n    ├── client/\n    │   └── ChatClient.java   # Endpoint del Cliente\n    └── WebSocketApplication.java   # Clase principal\n```\n\n## 💡 Funcionalidades futuras\n\n- Soporte para salas de chat privadas.\n- Persistencia de mensajes en una base de datos.\n- Integración con un cliente frontend (Angular, React, etc.).\n\n## 🤝 Contribuciones\n\n¡Las contribuciones son bienvenidas! Si deseas mejorar este proyecto, realiza un fork y envía un Pull Request.\n\n## 📝 Licencia\n\nEste proyecto está bajo la Licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.\n\n\n\n--------\n\n\n\n## Profesor: Alejandro Daniel Di Stefano\n[GitHub](https://github.com/Drako01) \n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrako01%2Fwebsocket-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrako01%2Fwebsocket-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrako01%2Fwebsocket-java/lists"}