Browse Source

isChannelOpen method added. Issue #54

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

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

@ -84,4 +84,11 @@ public interface SocketIOClient extends ClientOperations {
*/
SocketAddress getRemoteAddress();
/**
* Check is underlying channel open
*
* @return <code>true</code> if channel open, otherwise <code>false</code>
*/
boolean isChannelOpen();
}

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

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

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

@ -41,10 +41,17 @@ public class NamespaceClient implements SocketIOClient {
return baseClient;
}
@Override
public Transport getTransport() {
return baseClient.getTransport();
}
@Override
public boolean isChannelOpen() {
return baseClient.getChannel().isOpen();
}
@Override
public Namespace getNamespace() {
return namespace;
}

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

@ -32,15 +32,11 @@ public class WebSocketClient extends BaseClient {
DisconnectableHub disconnectable, UUID sessionId,
Transport transport) {
super(sessionId, ackManager, disconnectable, transport);
this.channel = channel;
}
public Channel getChannel() {
return channel;
setChannel(channel);
}
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) {
this.origin = origin;
this.channel = channel;
setChannel(channel);
channel.write(new XHRNewChannelMessage(getSessionId(), origin));
}
@ -46,7 +46,7 @@ public class XHRPollingClient extends BaseClient {
}
public ChannelFuture send(Packet packet) {
return channel.write(new XHRPacketMessage(getSessionId(), origin, packet));
return getChannel().write(new XHRPacketMessage(getSessionId(), origin, packet));
}
}
Loading…
Cancel
Save