From 832a6099e8d8235da44f094abeba704870112062 Mon Sep 17 00:00:00 2001 From: Euni <1849581760@qq.com> Date: Sat, 18 Dec 2021 05:38:30 +0800 Subject: [PATCH] fix: fix emitting of events received during connection establishment (#695) Previously, the event name of packets received during the connection handshake would not be removed from the arguments array: ```java socket.on("my-event", new Emitter.Listener() { @Override public void call(Object... args) { System.out.println(Arrays.toString(args)); // prints ["my-event", "arg1", "arg2", "arg3"] } }); ``` --- src/main/java/io/socket/client/Socket.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/socket/client/Socket.java b/src/main/java/io/socket/client/Socket.java index 05feff39..9e844d94 100644 --- a/src/main/java/io/socket/client/Socket.java +++ b/src/main/java/io/socket/client/Socket.java @@ -376,7 +376,10 @@ private void onconnect(String id) { private void emitBuffered() { List data; while ((data = this.receiveBuffer.poll()) != null) { - String event = (String)data.get(0); + if (data.isEmpty()) { + continue; + } + String event = data.remove(0).toString(); super.emit(event, data.toArray()); } this.receiveBuffer.clear();