private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
private boolean maxBytesLimit(final int bytesWritten) { bytesSent.addAndGet(bytesWritten); return bytesSent.get() >= config.maxStreamingBytesSize(); }
logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize());
@Override public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise promise) throws Exception { if (msg instanceof Frame) { final Frame frame = (Frame) msg; if (headerSent.compareAndSet(false, true)) { ctx.write(createResponse(CONTENT_TYPE_EVENT_STREAM), promise); ctx.writeAndFlush(new DefaultHttpContent(CRLF.duplicate())); } final ByteBuf data = ctx.alloc().buffer(); data.writeBytes(FRAME_START.duplicate()); data.writeBytes(frame.content()); data.writeBytes(FRAME_END.duplicate()); final int dataSize = data.readableBytes(); ctx.writeAndFlush(new DefaultHttpContent(data)); frame.release(); if (maxBytesLimit(dataSize)) { if (logger.isDebugEnabled()) { logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize()); } ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } } }
@Override public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise promise) throws Exception { if (msg instanceof Frame) { final Frame frame = (Frame) msg; if (headerSent.compareAndSet(false, true)) { ctx.write(createResponse(CONTENT_TYPE_EVENT_STREAM), promise); ctx.writeAndFlush(new DefaultHttpContent(CRLF.duplicate())); } final ByteBuf data = ctx.alloc().buffer(); data.writeBytes(FRAME_START.duplicate()); data.writeBytes(frame.content()); data.writeBytes(FRAME_END.duplicate()); final int dataSize = data.readableBytes(); ctx.writeAndFlush(new DefaultHttpContent(data)); frame.release(); if (maxBytesLimit(dataSize)) { if (logger.isDebugEnabled()) { logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize()); } ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } } }
logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize());
@Override public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise promise) throws Exception { if (msg instanceof Frame) { final Frame frame = (Frame) msg; if (headerSent.compareAndSet(false, true)) { final HttpResponse response = createResponse(Transports.CONTENT_TYPE_JAVASCRIPT); ctx.writeAndFlush(response); final ByteBuf content = wrapWithLN(new PreludeFrame().content()); final DefaultHttpContent preludeChunk = new DefaultHttpContent(content); ctx.writeAndFlush(preludeChunk); } ctx.writeAndFlush(new DefaultHttpContent(wrapWithLN(frame.content())), promise); if (frame instanceof CloseFrame) { ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } if (maxBytesLimit(frame.content().readableBytes())) { logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize()); ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } frame.release(); } else { ctx.writeAndFlush(ReferenceCountUtil.retain(msg), promise); } }
@Override public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise promise) throws Exception { if (msg instanceof Frame) { final Frame frame = (Frame) msg; if (headerSent.compareAndSet(false, true)) { final HttpResponse response = createResponse(Transports.CONTENT_TYPE_JAVASCRIPT); ctx.writeAndFlush(response); final ByteBuf content = wrapWithLN(new PreludeFrame().content()); final DefaultHttpContent preludeChunk = new DefaultHttpContent(content); ctx.writeAndFlush(preludeChunk); } ctx.writeAndFlush(new DefaultHttpContent(wrapWithLN(frame.content())), promise); if (frame instanceof CloseFrame) { ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } if (maxBytesLimit(frame.content().readableBytes())) { logger.debug("max bytesSize limit reached [{}]", config.maxStreamingBytesSize()); ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE); } frame.release(); } else { ctx.writeAndFlush(ReferenceCountUtil.retain(msg), promise); } }