JSON-RPC via websockets