Një imazh funksionon përmes një lidhjeje të drejtpërdrejtë të shpejtë, por është i paplotë përmes një proxy forward më të ngadaltë. Një shkak i mundshëm është që origjina mbyll lidhjen ndërsa përgjigja e saj ende po shkruhet.

I/O e Netty është asinkrone. Kthimi nga writeAndFlush nuk do të thotë që operacioni ka përfunduar. Prandaj ky rend nuk është i sigurt për një përgjigje që ka ende bajt në radhë:

ctx.writeAndFlush(response);
ctx.close();

Kur shkëmbimi HTTP mbyllet qëllimisht pas mesazhit të tij të fundit të përgjigjes, lidhni mbylljen me future e atij shkrimi:

ctx.writeAndFlush(finalResponseMessage)
    .addListener(ChannelFutureListener.CLOSE);

Fragmenti supozon se përgjigja është ndërtuar dhe kornizuar tashmë saktë. Për një trup të transmetuar në rrjedhë, përdorni përfundimin e mesazhit të tij të fundit, jo shkrimin e kokave. Për një lidhje HTTP të vazhdueshme, mos shtoni mbyllje vetëm sepse një përgjigje përfundoi.

Shqyrtoni dështimin e future si pjesë e trajtimit normal të gabimeve të aplikacionit. Përfundimi përfshin dështimin dhe anulimin, kështu që përfundimi vetëm nuk është një konfirmim dorëzimi nga shfletuesi.

Krahasimi i dobishëm është gjatësia e plotë e përgjigjes dhe rezultati i shkrimit në çdo rrugë. Një proxy mund të ndryshojë kohën mjaftueshëm për të zbuluar një gabim ekzistues të ciklit të jetës; prania e tij nuk provon që kompresori ose cache-ja e tij i hodhi bajt.

Artikuj të ngjashëm