Browse Source

isChannelOpen method added. Issue #54

master
Nikita 12 years ago
parent
commit
7b2880160c
  1. 11
      src/main/java/com/corundumstudio/socketio/SocketIOClient.java
  2. 12
      src/main/java/com/corundumstudio/socketio/transport/BaseClient.java
  3. 9
      src/main/java/com/corundumstudio/socketio/transport/NamespaceClient.java
  4. 10
      src/main/java/com/corundumstudio/socketio/transport/WebSocketClient.java
  5. 4
      src/main/java/com/corundumstudio/socketio/transport/XHRPollingClient.java

11
src/main/java/com/corundumstudio/socketio/SocketIOClient.java

@ -25,11 +25,11 @@ public interface SocketIOClient extends ClientOperations {
/** /**
* Current client transport protocol * Current client transport protocol
*
*
* @return transport protocol * @return transport protocol
*/ */
Transport getTransport(); Transport getTransport();
/** /**
* Send event with ack callback * Send event with ack callback
* *
@ -84,4 +84,11 @@ public interface SocketIOClient extends ClientOperations {
*/ */
SocketAddress getRemoteAddress(); SocketAddress getRemoteAddress();
/**
* Check is underlying channel open
*
* @return <code>true</code> if channel open, otherwise <code>false</code>
*/
boolean isChannelOpen();
} }

12
src/main/java/com/corundumstudio/socketio/transport/BaseClient.java

@ -49,7 +49,7 @@ public abstract class BaseClient {
private final AckManager ackManager; private final AckManager ackManager;
private final UUID sessionId; private final UUID sessionId;
private final Transport transport; private final Transport transport;
protected Channel channel;
private Channel channel;
public BaseClient(UUID sessionId, AckManager ackManager, DisconnectableHub disconnectable, Transport transport) { public BaseClient(UUID sessionId, AckManager ackManager, DisconnectableHub disconnectable, Transport transport) {
this.sessionId = sessionId; this.sessionId = sessionId;
@ -61,7 +61,7 @@ public abstract class BaseClient {
public Transport getTransport() { public Transport getTransport() {
return transport; return transport;
} }
public abstract ChannelFuture send(Packet packet); public abstract ChannelFuture send(Packet packet);
public void removeChildClient(SocketIOClient client) { public void removeChildClient(SocketIOClient client) {
@ -112,4 +112,12 @@ public abstract class BaseClient {
onChannelDisconnect(); onChannelDisconnect();
} }
Channel getChannel() {
return channel;
}
void setChannel(Channel channel) {
this.channel = channel;
}
} }

9
src/main/java/com/corundumstudio/socketio/transport/NamespaceClient.java

@ -40,11 +40,18 @@ public class NamespaceClient implements SocketIOClient {
public BaseClient getBaseClient() { public BaseClient getBaseClient() {
return baseClient; return baseClient;
} }
@Override
public Transport getTransport() { public Transport getTransport() {
return baseClient.getTransport(); return baseClient.getTransport();
} }
@Override
public boolean isChannelOpen() {
return baseClient.getChannel().isOpen();
}
@Override
public Namespace getNamespace() { public Namespace getNamespace() {
return namespace; return namespace;
} }

10
src/main/java/com/corundumstudio/socketio/transport/WebSocketClient.java

@ -28,19 +28,15 @@ import com.corundumstudio.socketio.parser.Packet;
public class WebSocketClient extends BaseClient { public class WebSocketClient extends BaseClient {
public WebSocketClient(Channel channel, AckManager ackManager,
public WebSocketClient(Channel channel, AckManager ackManager,
DisconnectableHub disconnectable, UUID sessionId, DisconnectableHub disconnectable, UUID sessionId,
Transport transport) { Transport transport) {
super(sessionId, ackManager, disconnectable, transport); super(sessionId, ackManager, disconnectable, transport);
this.channel = channel;
}
public Channel getChannel() {
return channel;
setChannel(channel);
} }
public ChannelFuture send(Packet packet) { public ChannelFuture send(Packet packet) {
return channel.write(new WebSocketPacketMessage(getSessionId(), packet));
return getChannel().write(new WebSocketPacketMessage(getSessionId(), packet));
} }
} }

4
src/main/java/com/corundumstudio/socketio/transport/XHRPollingClient.java

@ -37,7 +37,7 @@ public class XHRPollingClient extends BaseClient {
public void update(Channel channel, String origin) { public void update(Channel channel, String origin) {
this.origin = origin; this.origin = origin;
this.channel = channel;
setChannel(channel);
channel.write(new XHRNewChannelMessage(getSessionId(), origin)); channel.write(new XHRNewChannelMessage(getSessionId(), origin));
} }
@ -46,7 +46,7 @@ public class XHRPollingClient extends BaseClient {
} }
public ChannelFuture send(Packet packet) { public ChannelFuture send(Packet packet) {
return channel.write(new XHRPacketMessage(getSessionId(), origin, packet));
return getChannel().write(new XHRPacketMessage(getSessionId(), origin, packet));
} }
} }
Loading…
Cancel
Save