I suggest we go for a block-based approach. 
``` ruby
connection.each_request do |request|
    # handle
end
```

The connection would never re-yield after the websocket was handled. 
I think it would be good to have a branch on reeltalk which tried to use this for API sanity.