Непотпуне слике кроз прокси: проверите завршетак писања у Netty-ју
Када слике кроз прокси стигну непотпуне, проверите да ли извор затвара свој Netty канал пре него што се асинхроно писање одговора заврши.
Слика ради преко брзе директне везе, али је непотпуна кроз спорији forward прокси. Један могући узрок је да извор затвори везу док се његов одговор још пише.
Netty I/O је асинхрон. Повратак из writeAndFlush не значи да је та операција завршена. Зато је овај редослед несигуран за одговор који још има бајтова у реду:
ctx.writeAndFlush(response);
ctx.close();
Када се HTTP размена намерно затвара после своје последње поруке одговора, прикачите затварање на future тог писања:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
Исечак претпоставља да је одговор већ исправно изграђен и уоквирен. За струјно тело користите завршетак његове последње поруке, а не писање заглавља. За трајну HTTP везу не додајте затварање само зато што је одговор завршио.
Испитајте неуспех future-а као део уобичајене обраде грешака у апликацији. Завршетак укључује неуспех и отказивање, па сам завршетак није потврда доставе од прегледача.
Корисно поређење је укупна дужина одговора и исход писања на сваком путу. Прокси може променити време довољно да открије постојећу грешку животног циклуса; његово присуство не доказује да су његов компресор или кеш одбацили бајтове.