diff options
author | elonen <elonen@iki.fi> | 2015-05-10 11:01:23 +0300 |
---|---|---|
committer | elonen <elonen@iki.fi> | 2015-05-10 11:01:23 +0300 |
commit | c3e84a21f5169dc4c26c277370ebf28bd52b0cad (patch) | |
tree | 0ed8d6376b7f2a40668a3da60fce2cb230205e66 /websocket/src/main/java/fi/iki/elonen/samples/echo/DebugWebSocketServer.java | |
parent | 28ad0a8f0150fce97fa56b56c1d7b2274c39e4cb (diff) | |
parent | 6b640a9322686342d6f8df010807d1ae11add38b (diff) | |
download | nanohttpd-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.java | 48 |
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); + } } } |