Regarding websockets (admittedly off-topic re Mongrel though), I recently found out about Pushpin[0], which seems to be an elegant way to translate WS into HTTP, should it be of interest to someone. Basically a proxy-server that takes care of accepting either websockets or HTTP on the front, and talking only HTTP on the other side.
I evaluated PushPin for a project recently but ended up going with Nchan
Pushpin uses Mongrel2 under the hood to handle incoming WebSocket connections, so not entirely off topic. :)
It's pulled in as a dependency and launched in the background.
I thought PushPin was based on Qt?
It's multi-process. The core logic is a Qt application, but it delegates the external protocol I/O to separate processes. Mongrel2 handles inbound and Zurl handles outbound (Zurl is a project of ours that is basically the inverse of Mongrel2).
Also, websockets actually map pretty badly to http, conceptually, and fit zeromq much better IMO.