RPC over websockets with progress updates.