Added example ping/pong and closing frame.
This commit is contained in:
parent
aa72c987e7
commit
33f548a8ae
@ -25,6 +25,7 @@ import java.util.logging.Level;
|
|||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import org.jboss.netty.bootstrap.ServerBootstrap;
|
import org.jboss.netty.bootstrap.ServerBootstrap;
|
||||||
|
import org.jboss.netty.buffer.ChannelBuffers;
|
||||||
import org.jboss.netty.channel.Channel;
|
import org.jboss.netty.channel.Channel;
|
||||||
import org.jboss.netty.channel.ChannelFactory;
|
import org.jboss.netty.channel.ChannelFactory;
|
||||||
import org.jboss.netty.channel.group.ChannelGroup;
|
import org.jboss.netty.channel.group.ChannelGroup;
|
||||||
@ -32,6 +33,9 @@ import org.jboss.netty.channel.group.ChannelGroupFuture;
|
|||||||
import org.jboss.netty.channel.group.DefaultChannelGroup;
|
import org.jboss.netty.channel.group.DefaultChannelGroup;
|
||||||
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
|
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
|
||||||
import org.jboss.netty.example.http.websocketx.server.WebSocketServerPipelineFactory;
|
import org.jboss.netty.example.http.websocketx.server.WebSocketServerPipelineFactory;
|
||||||
|
import org.jboss.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
|
||||||
|
import org.jboss.netty.handler.codec.http.websocketx.PingWebSocketFrame;
|
||||||
|
import org.jboss.netty.handler.codec.http.websocketx.PongWebSocketFrame;
|
||||||
import org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
import org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame;
|
||||||
import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame;
|
import org.jboss.netty.handler.codec.http.websocketx.WebSocketFrame;
|
||||||
import org.jboss.netty.handler.codec.http.websocketx.WebSocketSpecificationVersion;
|
import org.jboss.netty.handler.codec.http.websocketx.WebSocketSpecificationVersion;
|
||||||
@ -94,13 +98,14 @@ public class App {
|
|||||||
MyCallbackHandler callbackHandler = new MyCallbackHandler();
|
MyCallbackHandler callbackHandler = new MyCallbackHandler();
|
||||||
WebSocketClientFactory factory = new WebSocketClientFactory();
|
WebSocketClientFactory factory = new WebSocketClientFactory();
|
||||||
|
|
||||||
// Connect with spec version 10 (try changing it to V00 and it will still work ... fingers crossed ;-)
|
// Connect with spec version 10 (try changing it to V00 and it will
|
||||||
|
// still work ... fingers crossed ;-)
|
||||||
WebSocketClient client = factory.newClient(new URI("ws://localhost:8080/websocket"),
|
WebSocketClient client = factory.newClient(new URI("ws://localhost:8080/websocket"),
|
||||||
WebSocketSpecificationVersion.V10, callbackHandler);
|
WebSocketSpecificationVersion.V10, callbackHandler);
|
||||||
|
|
||||||
// Connect
|
// Connect
|
||||||
client.connect().awaitUninterruptibly();
|
client.connect().awaitUninterruptibly();
|
||||||
Thread.sleep(500);
|
Thread.sleep(200);
|
||||||
|
|
||||||
// Send 10 messages and wait for responses
|
// Send 10 messages and wait for responses
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
@ -108,8 +113,11 @@ public class App {
|
|||||||
}
|
}
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
|
||||||
// Close - this throws ClosedChannelException. Not sure why. Just as easy to just disconnect.
|
// Close - this throws ClosedChannelException. Not sure why. Just as
|
||||||
//client.send(new CloseWebSocketFrame());
|
// easy to just disconnect.
|
||||||
|
client.send(new PingWebSocketFrame(ChannelBuffers.copiedBuffer(new byte[] { 1, 2, 3, 4, 5, 6 })));
|
||||||
|
client.send(new CloseWebSocketFrame());
|
||||||
|
Thread.sleep(200);
|
||||||
|
|
||||||
// Disconnect
|
// Disconnect
|
||||||
client.disconnect();
|
client.disconnect();
|
||||||
@ -159,6 +167,10 @@ public class App {
|
|||||||
TextWebSocketFrame textFrame = (TextWebSocketFrame) frame;
|
TextWebSocketFrame textFrame = (TextWebSocketFrame) frame;
|
||||||
logger.debug("WebSocket Client Received Message:" + textFrame.getText());
|
logger.debug("WebSocket Client Received Message:" + textFrame.getText());
|
||||||
messagesReceived.add(textFrame.getText());
|
messagesReceived.add(textFrame.getText());
|
||||||
|
} else if (frame instanceof PongWebSocketFrame) {
|
||||||
|
logger.debug("WebSocket Client ping/pong");
|
||||||
|
} else if (frame instanceof CloseWebSocketFrame) {
|
||||||
|
logger.debug("WebSocket Client closing");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user