html5 - w3schools - ¿Qué estructura web Haskell usaría uno para una plataforma de mensajería y datos HTTP/Websocket?
websocket w3schools (2)
Solo mirando Haskell y frameworks web y preguntándome si tendría sentido usar la gran funcionalidad de threading / eventos de Haskell para alimentar una plataforma para escribir aplicaciones HTML5 y REST que expongan una API HTTP para datos y un WebSocket (con el soporte de SockJS para un respaldo apropiado) ) API para eventos? No parece que los marcos web "grandes" sean compatibles con WebSockets como ciudadanos de primera clase, aunque parecen tener muchas otras cosas a su favor.
Mi preocupación es hacer uso de los núcleos disponibles, lo que puede hacer bien a Haskell, pero también proporcionar una fácil integración del usuario en el lado del servidor para la validación y la lógica del lado del servidor (¿tal vez mediante la incrustación de Lua o similar?). Si uno escribió esto en la JVM, uno podría hacer uso de soporte de lenguaje en el lado del servidor y muchas bibliotecas para este tipo de cosas.
Estoy seguro de que la gente está haciendo cosas como esta en una solución única para sus propias aplicaciones, pero estoy pensando en un enfoque de tipo PaaS donde se pueden escribir aplicaciones HTML5 con datos (incluida la sincronización adecuada para uso fuera de línea) y eventing "gratis" como parte fundamental de la plataforma. La mayoría de la lógica residiría en el navegador, pero algunos podrían ejecutarse en el servidor con los enlaces apropiados y una incrustabilidad razonable (JavaScript parece fuera de lugar y no estoy seguro de incorporar intérpretes en Haskell, ya que solo estoy familiarizado peligrosamente con Haskell en general) .
Parte del problema que he tenido con Haskell hasta ahora es que no soy matemático. No estudié CS en la universidad y soy un pensador de tipo creativo. Así que muchos de los tutoriales y la documentación me hacen perder bastante, especialmente cuando se trata de las cosas matemáticas.
¿Alguien ha pisado este camino ya? ¿Llego tarde a la fiesta? :)
Creo que todos los principales marcos tienen cierto nivel de compatibilidad con websockets, por lo que deberían ser una elección justa según sus requisitos. Para Yesod, hay un ejemplo de cómo crear un sistema de chat (usando el fuente de eventos, no los websockets) disponible en el libro:
Gregory Collins dio un tutorial en CUFP el año pasado sobre el uso de Snap para construir un sitio web de chat interactivo utilizando encuestas largas (no websockets). El código fuente está aquí .
En el departamento de websockets, Jasper Van der Jeugt escribió una biblioteca Haskell websockets . Está disponible en hackage y viene con websockets-snap , que proporciona compatibilidad con el marco Snap. También hay wai-websockets que proporciona integración con Warp.