aboutsummaryrefslogtreecommitdiff
path: root/websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java
diff options
context:
space:
mode:
authorelonen <elonen@iki.fi>2015-05-10 11:01:23 +0300
committerelonen <elonen@iki.fi>2015-05-10 11:01:23 +0300
commitc3e84a21f5169dc4c26c277370ebf28bd52b0cad (patch)
tree0ed8d6376b7f2a40668a3da60fce2cb230205e66 /websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java
parent28ad0a8f0150fce97fa56b56c1d7b2274c39e4cb (diff)
parent6b640a9322686342d6f8df010807d1ae11add38b (diff)
downloadnanohttpd-c3e84a21f5169dc4c26c277370ebf28bd52b0cad.tar.gz
Merge pull request #176 from NanoHttpd/SingleClassWebsocketServer
Combine the websocket server into one class like NanoHttpd.
Diffstat (limited to 'websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java')
-rw-r--r--websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java48
1 files changed, 44 insertions, 4 deletions
diff --git a/websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java b/websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java
index e6b225e..8d5b752 100644
--- a/websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java
+++ b/websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java
@@ -33,14 +33,14 @@ package fi.iki.elonen.samples.echo;
* #L%
*/
+import java.io.IOException;
import fi.iki.elonen.NanoWebSocketServer;
-import fi.iki.elonen.WebSocket;
/**
* @author Paul S. Hawke (paul.hawke@gmail.com)
* On: 4/23/14 at 10:31 PM
*/
-class DebugWebSocketServer extends NanoWebSocketServer {
+public class DebugWebSocketServer extends NanoWebSocketServer {
private final boolean debug;
public DebugWebSocketServer(int port, boolean debug) {
@@ -49,7 +49,47 @@ class DebugWebSocketServer extends NanoWebSocketServer {
}
@Override
- public WebSocket openWebSocket(IHTTPSession handshake) {
- return new DebugWebSocket(handshake, debug);
+ protected void onPong(WebSocket socket, WebSocketFrame pongFrame) {
+ if (debug) {
+ System.out.println("P " + pongFrame);
+ }
+ }
+
+ @Override
+ protected void onMessage(WebSocket socket, WebSocketFrame messageFrame) {
+ try {
+ messageFrame.setUnmasked();
+ socket.sendFrame(messageFrame);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ protected void onClose(WebSocket socket, WebSocketFrame.CloseCode code, String reason, boolean initiatedByRemote) {
+ if (debug) {
+ System.out.println("C [" + (initiatedByRemote ? "Remote" : "Self") + "] " +
+ (code != null ? code : "UnknownCloseCode[" + code + "]") +
+ (reason != null && !reason.isEmpty() ? ": " + reason : ""));
+ }
+ }
+
+ @Override
+ protected void onException(WebSocket socket, IOException e) {
+ e.printStackTrace();
+ }
+
+ @Override
+ protected void onFrameReceived(WebSocketFrame frame) {
+ if (debug) {
+ System.out.println("R " + frame);
+ }
+ }
+
+ @Override
+ public void onSendFrame(WebSocketFrame frame) {
+ if (debug) {
+ System.out.println("S " + frame);
+ }
}
}