如何为仆人定义服务器发送事件(SSE)端点。该文档似乎没有涵盖这种情况。

如果Servant不是为实时用例设计的,那么哪种Haskell服务器框架支持SSE?

最佳答案

servant使用WAI,并且您可以始终使用WAI组合器深入到普通的Raw应用程序和为其提供的所有库。因此,您可以使用Network.Wai.EventSource中的 wai-extra 创建一个Application,这是Raw端点的处理程序类型。就像是:

type MyApi = "normalapi" :> NormalApi
        :<|> "sse" :> Raw

myServer :: Server MyAPI
myServer = normalServer :<|> eventSourceAppChan myChan

10-06 10:30