I don't have any comments on the specifics of your application, but I've used zeromq4-haskell [0] for IHaskell and it's a solid library that works well. There's also zeromq-haskell (instead of zeromq4-haskell) if you want older ZeroMQ. I was using it for local communication, not networked though, so not sure if that changes anything. It is fairly low-level, though, so I imagine Cloud Haskell can give you a higher level of abstraction when dealing with networking stuff.

[0] https://hackage.haskell.org/package/zeromq4-haskell


On Wed, Jul 9, 2014 at 10:40 AM, Isak Hansen <isak.hansen@gmail.com> wrote:
Let's just imagine there aren't enough poker sites out there already and that it makes sense to build another one. Basically, there will be players connecting to one or more tables, most likely talking some kind of JSON based protocol with the server(s).

#1 - What's a good way to set up and maintain compressed and encrypted connections from the clients to my cluster? I've been wanting to try out websockets, think that'll do?

#2 - I'm new to Haskell and would appreciate thoughts on how to store and process game state. Imagine a plain application managing 1000 tables of poker, responding to player input (that magically appears) and timer events (e.g. folding players that fail to take action). What data structures and libraries should I be looking at here? Thoughts on concurrency and how I organize program flow?

#3 - I'm thinking of ZMQ to wire components together. Would I be better off basing my cluster on Cloud Haskell or some other library for distributed work?


Would love some quick pointers and feedback here, thanks in advance,
Isak


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe