Can be called to clean up resources
@override Future<void> dispose() { channel.close(); socket.close(); return super.dispose(); }