From f06d9b1803601e5a51528df490a990206663d5b1 Mon Sep 17 00:00:00 2001 From: Alfio Emanuele Fresta Date: Tue, 25 Nov 2014 00:04:47 +0000 Subject: [PATCH] Fix #62, binary arguments in emit with ack --- .../com/github/nkzawa/socketio/client/Socket.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/nkzawa/socketio/client/Socket.java b/src/main/java/com/github/nkzawa/socketio/client/Socket.java index 45a6546..c16c25d 100644 --- a/src/main/java/com/github/nkzawa/socketio/client/Socket.java +++ b/src/main/java/com/github/nkzawa/socketio/client/Socket.java @@ -173,8 +173,7 @@ public class Socket extends Emitter { for (Object arg : _args) { jsonArgs.put(arg); } - int parserType = Parser.EVENT; - if (HasBinary.hasBinary(jsonArgs)) { parserType = Parser.BINARY_EVENT; } + int parserType = HasBinary.hasBinary(jsonArgs) ? Parser.BINARY_EVENT : Parser.EVENT; Packet packet = new Packet(parserType, jsonArgs); if (_args.get(_args.size() - 1) instanceof Ack) { @@ -229,7 +228,13 @@ public class Socket extends Emitter { addAll(Arrays.asList(args)); } }}; - Packet packet = new Packet(Parser.EVENT, new JSONArray(_args)); + + JSONArray jsonArgs = new JSONArray(); + for (Object _arg : _args) { + jsonArgs.put(_arg); + } + int parserType = HasBinary.hasBinary(jsonArgs) ? Parser.BINARY_EVENT : Parser.EVENT; + Packet packet = new Packet(parserType, jsonArgs); logger.fine(String.format("emitting packet with ack id %d", ids)); Socket.this.acks.put(ids, ack);