From 85e3432e9ae9a12ef1654c3c8ada3edb6dbfd5dc Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 6 Aug 2013 10:04:43 +0400 Subject: [PATCH] Replace buffers used during encoding to Pooled buffers. Issue #65 --- .../com/corundumstudio/socketio/SocketIOEncoder.java | 12 +++++------- .../com/corundumstudio/socketio/parser/Encoder.java | 2 -- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java b/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java index 3f0771c..0b9e109 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java @@ -22,7 +22,6 @@ import static io.netty.handler.codec.http.HttpHeaders.Names.CONTENT_TYPE; import static io.netty.handler.codec.http.HttpHeaders.Values.KEEP_ALIVE; import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; @@ -52,10 +51,10 @@ import org.slf4j.LoggerFactory; import com.corundumstudio.socketio.messages.AuthorizeMessage; import com.corundumstudio.socketio.messages.BaseMessage; +import com.corundumstudio.socketio.messages.HttpMessage; import com.corundumstudio.socketio.messages.WebSocketPacketMessage; import com.corundumstudio.socketio.messages.WebsocketErrorMessage; import com.corundumstudio.socketio.messages.XHRErrorMessage; -import com.corundumstudio.socketio.messages.HttpMessage; import com.corundumstudio.socketio.messages.XHRNewChannelMessage; import com.corundumstudio.socketio.messages.XHROutMessage; import com.corundumstudio.socketio.messages.XHRPacketMessage; @@ -169,11 +168,10 @@ public class SocketIOEncoder extends ChannelOutboundHandlerAdapter implements Di public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { if (!(msg instanceof BaseMessage)) { super.write(ctx, msg, promise); + return; } -// TODO use it! -// ByteBuf out = ctx.alloc().ioBuffer(); - ByteBuf out = Unpooled.buffer(); + ByteBuf out = ctx.alloc().ioBuffer(); if (msg instanceof AuthorizeMessage) { handle((AuthorizeMessage) msg, ctx.channel(), out); @@ -218,7 +216,7 @@ public class SocketIOEncoder extends ChannelOutboundHandlerAdapter implements Di WebSocketFrame res = new TextWebSocketFrame(out); log.trace("Out message: {} sessionId: {}", new Object[] { out.toString(CharsetUtil.UTF_8), webSocketPacketMessage.getSessionId()}); - channel.write(res); + channel.writeAndFlush(res); if (!out.isReadable()) { out.release(); } @@ -227,7 +225,7 @@ public class SocketIOEncoder extends ChannelOutboundHandlerAdapter implements Di private void handle(WebsocketErrorMessage websocketErrorMessage, Channel channel, ByteBuf out) throws IOException { encoder.encodePacket(websocketErrorMessage.getPacket(), out); TextWebSocketFrame frame = new TextWebSocketFrame(out); - channel.write(frame); + channel.writeAndFlush(frame); } @Override diff --git a/src/main/java/com/corundumstudio/socketio/parser/Encoder.java b/src/main/java/com/corundumstudio/socketio/parser/Encoder.java index 5fa3062..c5f5402 100644 --- a/src/main/java/com/corundumstudio/socketio/parser/Encoder.java +++ b/src/main/java/com/corundumstudio/socketio/parser/Encoder.java @@ -50,8 +50,6 @@ public class Encoder { break; } - // TODO user polled -// ByteBuf packetBuffer = Unpooled.buffer(); ByteBuf packetBuffer = allocator.ioBuffer(); int len = encodePacket(packet, packetBuffer); byte[] lenBytes = toChars(len);