如何为仆人定义服务器发送事件(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