A JavaScript implementation of JSON-RPC v2 usable with WebSockets and HTTP