For the record I'd like to mention that using just the "specs"
at https://github.com/socketio/engine.io-protocol results in
an incorrect implementation.
mess of event-hell.
So, I finally used the specs first, then some good-old-fashioned protocol
reverse engineering, sprinkled with an extremely limited glance at
Ironically, one of Engine.IO's main features is listed on
It ultimately depends on your definition of "readable", I guess.