Передача файлов меньшего размера возможна без каких-либо проблем, но когда я использую файлы большего размера, сокет становится неактивным и закрывается по причине 1006. Netty выдает следующее исключение: https://hastebin.com/paxibawuco.bash (IndexOutOfBoundsException) правильно переполнение буфера.Поскольку я использую LengthFieldBasedFrameDecoder
, эта ошибка не должна появляться. Она также отлично работает с таймером 500 мс между каждым отправленным пакетом.
@Override
protected void initChannel(SocketChannel channel) {
ChannelPipeline pipe = channel.pipeline();
pipe.addLast(ssl.newHandler(channel.alloc()));
pipe.addLast(new HttpServerCodec());
pipe.addLast(new HttpObjectAggregator(64 * 1024));
pipe.addLast(new WebSocketServerProtocolHandler("/websocket"));
pipe.addLast(new LengthFieldBasedFrameDecoder(64 * 1024, 0, 4, 0, 4));
pipe.addLast(new FrameDecoder());
pipe.addLast(new LengthFieldPrepender(4));
pipe.addLast(new FrameEncoder());
pipe.addLast(new ServerHandler());
}
Есть ли способ передачи фрагментов файла безблокировка потока или отправка пакетов с задержкой?