Hook up the web socket reader and writer together.

Add a simple real-world recipe which talks to an echo server.
But you'd never get a non-empty string right? I'm imagining calling code:

```
  logger.warn("web socket %s closed unexpectedly: '%s'", webSocket, message);
```