Browse Source

Ack packet detection bug fixed

master
Nikita 13 years ago
parent
commit
9131e934e5
  1. 4
      src/main/java/com/corundumstudio/socketio/PacketHandler.java
  2. 10
      src/main/java/com/corundumstudio/socketio/parser/Packet.java

4
src/main/java/com/corundumstudio/socketio/PacketHandler.java

@ -15,6 +15,8 @@
*/
package com.corundumstudio.socketio;
import java.util.Collections;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
@ -64,7 +66,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((Object)null);
ackSender.sendAckData(Collections.emptyList());
}
} else {
ctx.sendUpstream(e);

10
src/main/java/com/corundumstudio/socketio/parser/Packet.java

@ -138,8 +138,16 @@ public class Packet {
this.advice = advice;
}
private boolean isJsonAck() {
return (Boolean.TRUE.equals(getAck()) || ACK_DATA.equals(getAck())) && getType().equals(PacketType.JSON);
}
private boolean isEventAck() {
return ACK_DATA.equals(getAck()) && getType().equals(PacketType.EVENT);
}
public boolean isAck() {
return getId() != null && !ACK_DATA.equals(getAck());
return getId() != null && (isEventAck() || isJsonAck());
}
}
Loading…
Cancel
Save