SocketRocket currently conforms to all ~300 of Autobahn's fuzzing tests (aside from two UTF-8 ones where it is merely non-strict. tests 6.4.2 and 6.4.4)
- TLS (wss) support. It uses CFStream so we get this for free
- Uses NSStream/CFNetworking. Earlier implementations used dispatch_io, however, this proved to be make TLS nearly impossible. Also I wanted this to work in iOS 4.x. (SocketRocket only supports 5.0 and above now)
- Uses ARC. It uses the 4.0 compatible subset (no weak refs).
- Parallel architecture. Most of the work is done in background worker queues.
- Delegate-based. Had older versions that could use blocks too, but I felt it didn't blend well with retain cycles and just objective C in general.