[web-devel] A WebSocket library

Jeremy Shaw jeremy at n-heptane.com
Tue Sep 27 19:34:23 CEST 2011


epic!

Happstack will be migrating to warp/wai really soon now. So, that  
should make happstack support trivial[1].

- jeremy

[1] One of the many reasons for migrating Happstack to warp is to get  
things like this for 'free'.


On Sep 25, 2011, at 9:46 AM, Jasper Van der Jeugt wrote:

> Hello all,
>
> I have been working on a WebSocket [1] library lately, which you can  
> find here
> [2]. It's getting to the point at which I want to release it on  
> Hackage.
> However, there is one thing remaining before the library will be  
> really useful
> for applications: integration.
>
> I would like to provide integration with Happstack, Snap and Yesod  
> -- this is
> why I have built the library around the enumerator package [3]. It  
> would be
> awesome if frameworks could more or less agree on a way in which an  
> HTTP
> connection can be "transformed" to a WebSocket.
>
> That way, I will be able to provide packages such as `websockets- 
> warp`,
> `websockets-snap` etc.
>
> Currently, the "entry point" of the websockets library is the  
> following
> function:
>
>    runWebSockets :: WebSockets a
>                  -> Enumerator ByteString IO a
>                  -> Iteratee ByteString IO ()
>                  -> Iteratee ByteString IO a
>
> Where the first argument is the user-supplied code in the  
> `WebSockets` monad
> (needs to keep a bit of state etc.), the second argument is an  
> enumerator which
> the library can use to read from the socket, and the last argument  
> is an
> iteratee with which the library can write to the socket.
>
> A web server then needs to provide some way to get this enumerator/ 
> iteratee
> pair, and hand it over to the library (currently, this is lacking).  
> Some more
> details apply, e.g. the web server shouldn't kill the websocket  
> handler as fast
> as regular HTTP connections.
>
> Is this proposal somewhat agreeable? I'm open to any feedback.
>
> [1]: http://en.wikipedia.org/wiki/WebSocket
> [2]: http://github.com/jaspervdj/websockets
> [3]: http://hackage.haskell.org/package/enumerator
>
> Cheers,
> Jasper
>
> _______________________________________________
> web-devel mailing list
> web-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel




More information about the web-devel mailing list