From b20868fc40402029f91367c9be8b7b7af078dc58 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 7 Apr 2012 20:36:42 +0400 Subject: [PATCH] Payload decode optimization --- README.md | 2 +- .../com/corundumstudio/socketio/parser/Decoder.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4b3a5f6..2476e31 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ #Overview -This project is an open-source Java implementation of [Socket.IO](http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/) server. Based on [Netty](http://netty.io/) server framework. +This project is an open-source Java implementation of [Socket.IO](http://socket.io/) server. Based on [Netty](http://netty.io/) server framework. Licensed under the MIT license. diff --git a/src/main/java/com/corundumstudio/socketio/parser/Decoder.java b/src/main/java/com/corundumstudio/socketio/parser/Decoder.java index 0ae0e68..30eab19 100644 --- a/src/main/java/com/corundumstudio/socketio/parser/Decoder.java +++ b/src/main/java/com/corundumstudio/socketio/parser/Decoder.java @@ -33,15 +33,17 @@ public class Decoder { List result = new ArrayList(); if (data.charAt(0) == Packet.DELIMITER) { // TODO optimize + StringBuilder length = new StringBuilder(); for (int i = 1; i < data.length(); i++) { - String length = ""; if (data.charAt(i) == Packet.DELIMITER) { - String packetStr = data.substring(i + 1, Integer.valueOf(length)); + Integer len = Integer.valueOf(length.toString()); + String packetStr = data.substring(i + 1, i + 1 + len); Packet packet = decodePacket(packetStr); result.add(packet); - i += Integer.valueOf(length) + 1; + i += len + 1; + length.setLength(0); } else { - length += data.charAt(i); + length.append(data.charAt(i)); } } } else {