diff --git a/src/main/java/com/corundumstudio/socketio/MessageHandler.java b/src/main/java/com/corundumstudio/socketio/MessageHandler.java index 5d4bfc9..f285267 100644 --- a/src/main/java/com/corundumstudio/socketio/MessageHandler.java +++ b/src/main/java/com/corundumstudio/socketio/MessageHandler.java @@ -25,7 +25,7 @@ import com.corundumstudio.socketio.messages.WebsocketErrorMessage; import com.corundumstudio.socketio.messages.XHRErrorMessage; import com.corundumstudio.socketio.messages.XHRNewChannelMessage; import com.corundumstudio.socketio.messages.XHRPacketMessage; -import com.corundumstudio.socketio.messages.XHRPostMessage; +import com.corundumstudio.socketio.messages.XHROutMessage; public interface MessageHandler { @@ -33,7 +33,7 @@ public interface MessageHandler { void handle(XHRPacketMessage xhrPacketMessage, Channel channel) throws IOException; - void handle(XHRPostMessage xhrPostMessage, Channel channel); + void handle(XHROutMessage xhrPostMessage, Channel channel); void handle(AuthorizeMessage authorizeMessage, Channel channel) throws IOException; diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java b/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java index c100411..5797f59 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java @@ -54,7 +54,7 @@ import com.corundumstudio.socketio.messages.WebsocketErrorMessage; import com.corundumstudio.socketio.messages.XHRErrorMessage; import com.corundumstudio.socketio.messages.XHRNewChannelMessage; import com.corundumstudio.socketio.messages.XHRPacketMessage; -import com.corundumstudio.socketio.messages.XHRPostMessage; +import com.corundumstudio.socketio.messages.XHROutMessage; import com.corundumstudio.socketio.parser.Encoder; import com.corundumstudio.socketio.parser.Packet; @@ -174,7 +174,7 @@ public class SocketIOEncoder extends SimpleChannelDownstreamHandler implements M } @Override - public void handle(XHRPostMessage xhrPostMessage, Channel channel) { + public void handle(XHROutMessage xhrPostMessage, Channel channel) { sendMessage(xhrPostMessage.getOrigin(), null, channel, ChannelBuffers.EMPTY_BUFFER); } diff --git a/src/main/java/com/corundumstudio/socketio/messages/XHRPostMessage.java b/src/main/java/com/corundumstudio/socketio/messages/XHROutMessage.java similarity index 91% rename from src/main/java/com/corundumstudio/socketio/messages/XHRPostMessage.java rename to src/main/java/com/corundumstudio/socketio/messages/XHROutMessage.java index 0dbeaf6..ca5e2b4 100644 --- a/src/main/java/com/corundumstudio/socketio/messages/XHRPostMessage.java +++ b/src/main/java/com/corundumstudio/socketio/messages/XHROutMessage.java @@ -19,11 +19,11 @@ import org.jboss.netty.channel.Channel; import com.corundumstudio.socketio.MessageHandler; -public class XHRPostMessage extends BaseMessage { +public class XHROutMessage extends BaseMessage { private final String origin; - public XHRPostMessage(String origin) { + public XHROutMessage(String origin) { this.origin = origin; } diff --git a/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java b/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java index c23b252..b5d55b6 100644 --- a/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java +++ b/src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java @@ -44,7 +44,7 @@ import com.corundumstudio.socketio.ack.AckManager; import com.corundumstudio.socketio.handler.AuthorizeHandler; import com.corundumstudio.socketio.messages.PacketsMessage; import com.corundumstudio.socketio.messages.XHRErrorMessage; -import com.corundumstudio.socketio.messages.XHRPostMessage; +import com.corundumstudio.socketio.messages.XHROutMessage; import com.corundumstudio.socketio.parser.ErrorAdvice; import com.corundumstudio.socketio.parser.ErrorReason; import com.corundumstudio.socketio.parser.Packet; @@ -102,15 +102,15 @@ public class XHRPollingTransport extends BaseTransport { UUID sessionId = UUID.fromString(parts[4]); String origin = req.getHeader(HttpHeaders.Names.ORIGIN); - if (HttpMethod.POST.equals(req.getMethod())) { + if (queryDecoder.getParameters().containsKey("disconnect")) { + BaseClient client = sessionId2Client.get(sessionId); + client.onChannelDisconnect(); + channel.write(new XHROutMessage(origin)); + } else if (HttpMethod.POST.equals(req.getMethod())) { onPost(sessionId, channel, origin, req.getContent()); } else if (HttpMethod.GET.equals(req.getMethod())) { onGet(sessionId, channel, origin); } - if (queryDecoder.getParameters().containsKey("disconnect")) { - BaseClient client = sessionId2Client.get(sessionId); - disconnectable.onDisconnect(client); - } } else { log.warn("Wrong {} method request path: {}, from ip: {}. Channel closed!", new Object[] {req.getMethod(), path, channel.getRemoteAddress()}); @@ -144,7 +144,7 @@ public class XHRPollingTransport extends BaseTransport { public void run() { XHRPollingClient client = sessionId2Client.get(sessionId); if (client != null) { - disconnectable.onDisconnect(client); + client.onChannelDisconnect(); log.debug("Client: {} disconnected due to connection timeout", sessionId); } } @@ -162,7 +162,7 @@ public class XHRPollingTransport extends BaseTransport { return; } - channel.write(new XHRPostMessage(origin)); + channel.write(new XHROutMessage(origin)); Channels.fireMessageReceived(channel, new PacketsMessage(client, content)); }