2016-06-16 20 views
5

Hizmetkâr için Sunucu Tarafından Gönderilen Olay (SSE) bitiş noktasını nasıl tanımlarım? Dokümanlar bu vakayı kapsamıyor gibi görünmüyor.Hizmet Sunucusu Gönderilen Olaylar desteği

Hizmetkar, gerçek zamanlı kullanım durumu için tasarlanmamışsa, Haskell sunucu çerçevesi SSE'yi destekliyor mu?

+0

Bu sorunun örnek çalışmasıyla ilgili sorularınızı güncelleyebilir veya halka açık repo ile bağlantıyı paylaşır mısınız? – akegalj

cevap

3

servantWAI kullanan oldukça güzel bulabilmesi için

paketin yesod-eventsource

Yesod'dan bir göz atın çok güzel yemek kitabı vardır ve her zaman normal bir WAI uygulamalarına aşağı daldırma ve tüm Raw birleştirici ile bunun için var olan kitaplıklar. Bu nedenle, Raw uç noktaları için işleyici türü olan bir Application oluşturmak için wai-extra'dan Network.Wai.EventSource'u kullanabilirsiniz. Şunlar gibi:

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

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

Bu işe yaradı! Bazı “ByteString” ve “Builder” sorunları etrafında çalışmak zorunda kaldım, ancak 1000 bağlantılı akışta çok iyi çalıştı. Onu kendi başına bir şey olarak değerlendirmeye çalışacağım ve bir kütüphane olarak yayınlayıp yayınlamayacağımı göreceğim. – Subra

0

Evet, sunucu hizmetlerinin sunucuda gönderildiğinden emin değilim, ancak Yesod gibi daha kapsamlı Web çerçeveleri bunun için destek sağlıyor. Eğer olay example