From 71215029c96a3e9876de5fdfbf7a97b456a5fd67 Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 27 Sep 2012 20:11:14 +0400 Subject: [PATCH] Ability to send multiple ack data objects --- .../corundumstudio/socketio/AckRequest.java | 18 ++++++++++++++---- .../corundumstudio/socketio/PacketHandler.java | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/corundumstudio/socketio/AckRequest.java b/src/main/java/com/corundumstudio/socketio/AckRequest.java index 44b5ef8..7938557 100644 --- a/src/main/java/com/corundumstudio/socketio/AckRequest.java +++ b/src/main/java/com/corundumstudio/socketio/AckRequest.java @@ -52,16 +52,26 @@ public class AckRequest { * Send ack data to client. * Can be invoked only once. * - * @param obj - ack data object + * @param objs - ack data objects */ - public void sendAckData(Object obj) { + public void sendAckData(Object ... objs) { + List args = Arrays.asList(objs); + sendAckData(args); + } + + /** + * Send ack data to client. + * Can be invoked only once. + * + * @param objs - ack data object list + */ + public void sendAckData(List objs) { if (!isAckRequested() || !sended.compareAndSet(false, true)) { return; } Packet ackPacket = new Packet(PacketType.ACK); ackPacket.setAckId(originalPacket.getId()); - List args = Arrays.asList(obj); - ackPacket.setArgs(args); + ackPacket.setArgs(objs); client.send(ackPacket); } diff --git a/src/main/java/com/corundumstudio/socketio/PacketHandler.java b/src/main/java/com/corundumstudio/socketio/PacketHandler.java index 9de4657..f884589 100644 --- a/src/main/java/com/corundumstudio/socketio/PacketHandler.java +++ b/src/main/java/com/corundumstudio/socketio/PacketHandler.java @@ -64,7 +64,7 @@ public class PacketHandler extends SimpleChannelUpstreamHandler { SocketIOClient client = message.getClient().getChildClient(ns); AckRequest ackSender = new AckRequest(packet, client); packetListener.onPacket(packet, client, ackSender); - ackSender.sendAckData(null); + ackSender.sendAckData((Object)null); } } else { ctx.sendUpstream(e);