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 {