只是看看Haskell和Web框架,想知道使用Haskell出色的线程/事件功能来支持一个用于编写HTML5和REST应用程序的平台是否有意义,这些应用程序公开了用于数据的HTTP API和用于事件的WebSocket(也许SockJS支持适当的回退)API?似乎"大"Web框架并不支持WebSockets作为一等公民,尽管它们似乎还有很多其他的事情要做。
我关心的是利用可用的内核,Haskell可以做得很好,但也在服务器端提供简单的用户集成以进行验证和服务器端逻辑(也许通过嵌入Lua或类似的东西?如果在JVM上编写这个,则可以使用多个服务器端语言支持和许多库来完成此类事情。
我敢肯定,人们正在为他们自己的应用程序提供一次性解决方案,但我正在考虑PaaS类型的方法,其中可以使用数据编写HTML5应用程序(包括离线使用的正确同步)和事件"免费"作为平台的基本部分。大多数逻辑将驻留在浏览器中,但有些逻辑可以在服务器上运行,具有适当的钩子和合理的可嵌入性(JavaScript似乎是不可能的,并且不确定在Haskell中嵌入解释器,因为我只是危险地熟悉Haskell一般)。
到目前为止,我在Haskell上遇到的部分问题是我不是一个数学家。我在大学里没有学过CS,我是一个创造性的思想家。所以很多教程和文档让我很迷茫,尤其是在处理数学内容时。
有人已经走过这条路了吗?我参加聚会迟到了吗?:)
Gregory Collins去年在CUFP上做了一个关于使用Snap使用长轮询(不是websockets)构建交互式聊天网站的教程。 源代码在这里。
在websockets部门,Jasper Van der Jeugt编写了一个Haskellwebsockets库。 它在hackage上可用,并带有websockets-snap,它提供Snap框架支持。 还有wai-websockets,它提供了与Warp的集成。
所有主要的框架都有一定程度的websockets支持,所以根据你的要求,它们都应该是一个公平的选择。对于Yesod,书中有一个创建聊天系统(使用eventsource,而不是websockets)的示例:
http://www.yesodweb.com/book/wiki-chat-example