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
*
*
* @return transport protocol
*/
Transport getTransport();
/**
* Send event with ack callback
*
@ -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();
}

12
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;
@ -61,7 +61,7 @@ public abstract class BaseClient {
public Transport getTransport() {
return transport;
}
public abstract ChannelFuture send(Packet packet);
public void removeChildClient(SocketIOClient client) {
@ -112,4 +112,12 @@ public abstract class BaseClient {
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() {
return baseClient;
}
@Override
public Transport getTransport() {
return baseClient.getTransport();
}
@Override
public boolean isChannelOpen() {
return baseClient.getChannel().isOpen();
}
@Override
public Namespace getNamespace() {
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 WebSocketClient(Channel channel, AckManager ackManager,
public WebSocketClient(Channel channel, AckManager ackManager,
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