Мое серверное веб-приложение Dart обслуживает файлы изображений для определенных запросов.
Упрощенно, вот что он делает в настоящее время:
HttpServer.bind(InternetAddress.ANY_IP_V4, 80)
.then((HttpServer server) {
server.listen((HttpRequest request) {
request.response.statusCode = HttpStatus.OK;
request.response.headers.contentType = ContentType.parse("image/jpg");
var file = new File("C:\\images\\myImage.jpg");
file.readAsBytes().then((List<int> bytes) {
bytes.forEach((int b) => request.response.writeCharCode(b)); // slow!
request.response.close();
});
}
}
Это работает, но довольно медленно, и я подозреваю, что запись каждого байта по отдельности через HttpResponse.writeCharCode
замедляет работу здесь.
К сожалению, в HttpResponse.writeAllCharCodes. >. Есть writeAll, но он вызывает toString()
на каждый элемент массива байтов - нам нужно записать необработанные байты.
Какие-либо предложения?