Передача файла WebSocket IndexOutOfBoundsException (переполнение буфера) - PullRequest
0 голосов
/ 29 декабря 2018

Передача файлов меньшего размера возможна без каких-либо проблем, но когда я использую файлы большего размера, сокет становится неактивным и закрывается по причине 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());

}

Есть ли способ передачи фрагментов файла безблокировка потока или отправка пакетов с задержкой?

...