На основе netty 3.6 Я использую небольшой HTTP-сервер в своем рабочем приложении Java. К настоящему времени я успешно создал базовый макет HTTP-сервера, я могу отправлять различные текстовые файлы своим клиентам на основе браузера.Как отправить текстовые и двоичные данные с пользовательского HTTP-сервера netty в Java?
В моей Нетти трубопровода сервер завода создать новые трубопроводы канала следующим образом:
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast("aggregator", new HttpChunkAggregator(1048576));
pipeline.addLast("encoder", new HttpResponseEncoder());
pipeline.addLast("handler", new HttpServerHandler());
В моем HttpServerHandler
классе я отправлять текстовые данные клиентов следующим образом:
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
response.setHeader(CONTENT_TYPE, contentType + "; charset=UTF-8");
response.setHeader(PRAGMA, "no-cache");
response.setContent(ChannelBuffers.copiedBuffer(responseText, CharsetUtil.UTF_8));
if(keepAlive)
{
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
response.setHeader(CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
}
ChannelFuture future = e.getChannel().write(response);
Добра. Теперь я также хочу отправить двоичные данные (например, изображения) моим клиентам. Поскольку я не нашел онлайн-пример о том, как этого достичь, у меня есть два вопроса:
- Как изменить класс
HttpServerHandler
для отправки бинарного файла клиенту?