Websocket protocols

Resolves #85.