哪个Websockets库与Yesod一起使用?

时间:2014-03-01 20:26:34

标签: haskell websocket yesod haskell-wai

我想知道是否有人可以解释Haskell websocket库之间的差异以及它们如何与Yesod一起工作。

我要说的两个主要例子是this tutorial for Network.Websocketsthe wai websockets package

我无法为wai包找到一个好的示例或教程。既然yesod使用wai,它对简单的网络有什么优势呢?它是否意味着代替Network.Websockets使用或与其结合使用?

我见过一些例子,但我无法理解他们如何真正融入yesod环境。如果有人可以解释websockets如何与处理程序和IO相关联,那么在Yesod中,这将是很棒的。

注意:我看过this questionthis question,但我无法理解如何应用它们,因为它们实际上没有解释websockets适合Yesod的位置。

2 个答案:

答案 0 :(得分:7)

Yesod websockets现已推出。 “cabal install yesod-websockets”获取并安装包。您可以在Michael Snoyman的2014年3月9日博客http://www.yesodweb.com/blog/2014/03/wai-yesod-websockets上阅读相关内容。

答案 1 :(得分:4)

事实是,websockets不属于普通请求/响应对的范围。因此,正常的Yesod处理程序不能能够简单地开始使用websockets。这将是理想的,也许我们将来会增加这种支持,但我还没有想出办法(想法/建议/讨论非常受欢迎!)。

同时,集成websockets的方法是下拉一层抽象并直接使用wi-websocket与Warp。您链接的答案描述了如何完成这项工作。

我不确定您的要求是什么,但是eventsource更适合现有的请求/响应范例,而yesod-eventsource包可以很容易地与Yesod集成。因此,如果符合您的要求,您可能需要查看它。 (Eventsource的优点还在于它可以与HTTP反向代理一起正常工作。)

更新此答案不再准确;请参阅David的答案以获取最新信息。