Soy nuevo en el mundo de Java EE. Como un ejercicio para tratar de familiarizarme con Java EE, estoy tratando de crear una aplicación web por niveles, pero me estoy quedando un poco atrapado en lo que es la mejor manera de activar un servicio en segundo plano que funciona.Nuevo en Java EE; sugerencias de arquitectura para un servicio/daemon?
parámetros del servicio:
- Se debe abrir y mantener una conexión de socket y recibir información desde el servidor conectado.
- Existe una correlación 1-a-1 entre un usuario y una nueva conexión de socket.
Así que la idea es que el usuario presiona un botón en la página web, y en algún lugar del servidor se abre una conexión de socket. Para el resto de la sesión de los usuarios (o hasta que el usuario presiona algún tipo de botón de desconexión) el socket permanece abierto y envía la información recibida a algún tipo de tienda centralizada que los servlets pueden consultar y devolver al usuario a través de AJAX.
¿Hay una forma de Java EE para manejar esta situación? Naturalmente, lo que me gustaría hacer es escribir una aplicación Java que escuche en un puerto al que los servlets puedan conectarse y engendre nuevos hilos que abran estos sockets, pero eso me parece muy ad-hoc.
(PS: Yo también soy nuevo en desbordamiento de pila, así que perdónenme si me lleva algún tiempo para averiguar el sitio fuera!)
¿Puede ampliar el propósito de abrir un socket y presionar datos? Desde su aplicación web, ¿desea abrir una conexión a otra aplicación y enviar datos que la primera aplicación web puede consultar?¿De dónde provienen estos datos y cómo se ven? –
Para los propósitos de esta pregunta, digamos que la página web es un front-end para una conexión telnet. En el servidor, la conexión de telnet debe mantenerse abierta hasta que el usuario diga "cerrar" o se agote el tiempo de espera. Esa conexión necesita escribir en el texto del socket que el usuario escribe y leer desde el texto del socket que escribe el servidor telnet. ¡Espero que eso ayude a aclarar! – Kate