update Parser
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package io.socket.parser;
|
package io.socket.parser;
|
||||||
|
|
||||||
import io.socket.emitter.Emitter;
|
import io.socket.emitter.Emitter;
|
||||||
|
import io.socket.hasbinary.HasBinary;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONTokener;
|
import org.json.JSONTokener;
|
||||||
|
|
||||||
@@ -77,6 +78,10 @@ public class Parser {
|
|||||||
public Encoder() {}
|
public Encoder() {}
|
||||||
|
|
||||||
public void encode(Packet obj, Callback callback) {
|
public void encode(Packet obj, Callback callback) {
|
||||||
|
if ((obj.type == EVENT || obj.type == ACK) && HasBinary.hasBinary(obj.data)) {
|
||||||
|
obj.type = obj.type == EVENT ? BINARY_EVENT : BINARY_ACK;
|
||||||
|
}
|
||||||
|
|
||||||
logger.fine(String.format("encoding packet %s", obj));
|
logger.fine(String.format("encoding packet %s", obj));
|
||||||
|
|
||||||
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
|
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
|
||||||
@@ -88,10 +93,7 @@ public class Parser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String encodeAsString(Packet obj) {
|
private String encodeAsString(Packet obj) {
|
||||||
StringBuilder str = new StringBuilder();
|
StringBuilder str = new StringBuilder("" + obj.type);
|
||||||
boolean nsp = false;
|
|
||||||
|
|
||||||
str.append(obj.type);
|
|
||||||
|
|
||||||
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
|
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
|
||||||
str.append(obj.attachments);
|
str.append(obj.attachments);
|
||||||
@@ -99,20 +101,15 @@ public class Parser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (obj.nsp != null && obj.nsp.length() != 0 && !"/".equals(obj.nsp)) {
|
if (obj.nsp != null && obj.nsp.length() != 0 && !"/".equals(obj.nsp)) {
|
||||||
nsp = true;
|
|
||||||
str.append(obj.nsp);
|
str.append(obj.nsp);
|
||||||
|
str.append(",");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj.id >= 0) {
|
if (obj.id >= 0) {
|
||||||
if (nsp) {
|
|
||||||
str.append(",");
|
|
||||||
nsp = false;
|
|
||||||
}
|
|
||||||
str.append(obj.id);
|
str.append(obj.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj.data != null) {
|
if (obj.data != null) {
|
||||||
if (nsp) str.append(",");
|
|
||||||
str.append(obj.data);
|
str.append(obj.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,11 +168,11 @@ public class Parser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Packet decodeString(String str) {
|
private static Packet decodeString(String str) {
|
||||||
Packet<Object> p = new Packet<Object>();
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int length = str.length();
|
int length = str.length();
|
||||||
|
|
||||||
p.type = Character.getNumericValue(str.charAt(0));
|
Packet<Object> p = new Packet<Object>(Character.getNumericValue(str.charAt(0)));
|
||||||
|
|
||||||
if (p.type < 0 || p.type > types.length - 1) return error();
|
if (p.type < 0 || p.type > types.length - 1) return error();
|
||||||
|
|
||||||
if (BINARY_EVENT == p.type || BINARY_ACK == p.type) {
|
if (BINARY_EVENT == p.type || BINARY_ACK == p.type) {
|
||||||
|
|||||||
Reference in New Issue
Block a user