Para un pequeño proyecto educativo destinado a ser un recurso de la comunidad para ayudar a las personas a aprender Scala, estoy buscando una manera simple de servir y procesar páginas web en un hilo de fondo.Scala: ¿cómo insertar un pequeño servidor web en una aplicación scala?
Fondo mínimo: Scalatron es un juego multi-jugador en el que los programas bot jugadores de pozo (escrito en Scala) uno contra el otro. Va acompañado de un tutorial paso a paso de Scala. Actualmente los jugadores necesitan usar un IDE en sus máquinas locales para compilar bots, que luego se publican en el juego copiándolos en un directorio de red compartido. Esto es engorroso. Para la próxima versión, sería agradable ofrecer edición y publicación de bots basados en navegador para simplificar al máximo la configuración tanto para organizadores como para jugadores.
ya tengo un trabajo subproceso de fondo que compilar el código fuente Scala de llegar en el servidor sobre la marcha (obviando la necesidad de una plena IDE). A continuación, tengo que ejecutar un pequeño servidor web para proporcionar un punto de acceso para los jugadores y gestionar las cargas de bots (esto elimina el recurso compartido de red).
Los requisitos son muy básicos: inicialmente preveo servir una sola página con un cuadro de edición y un botón "Ir" (= cargar al servidor, compilar & publicar en el juego); Espero no más de 20 usuarios simultáneos con no más de una carga de bot en todos los usuarios cada 5 o 10 segundos; Necesito mantener un estado mínimo para cada usuario (solo un nombre) y debo devolver los mensajes de error del compilador al usuario. Tenga en cuenta que las actualizaciones de la pantalla del juego NO se mostrarán en el navegador, sino en un proyector conectado a la máquina del servidor. Y principalmente para permitir la configuración más simple posible (haga doble clic en el servidor del juego .jar), creo que sería bueno ejecutar el servidor web en un hilo de fondo dentro del servidor del juego existente.
¿Cuál es la forma más adecuada de hacerlo? ¿Debería usar algún framework existente, como Play o Lift? ¿Existe un código para hacer algo muy similar a esto? ¿Es razonable planear ejecutar un servidor web en un hilo de fondo como este? Cualquier consejo es apreciado.
Grande, será comprobar que fuera, gracias! –
Tengo todo funcionando con Jetty. Gracias por el consejo. –