| package fi.iki.elonen; |
| |
| |
| public class NanoWebSocketServer extends NanoHTTPD implements IWebSocketFactory { |
| public static final String MISSING_FACTORY_MESSAGE = "You must either override this method or supply a WebSocketFactory in the constructor"; |
| |
| private final WebSocketResponseHandler responseHandler; |
| |
| public NanoWebSocketServer(int port) { |
| super(port); |
| responseHandler = new WebSocketResponseHandler(this); |
| } |
| |
| public NanoWebSocketServer(String hostname, int port) { |
| super(hostname, port); |
| responseHandler = new WebSocketResponseHandler(this); |
| } |
| |
| public NanoWebSocketServer(int port, IWebSocketFactory webSocketFactory) { |
| super(port); |
| responseHandler = new WebSocketResponseHandler(webSocketFactory); |
| } |
| |
| public NanoWebSocketServer(String hostname, int port, IWebSocketFactory webSocketFactory) { |
| super(hostname, port); |
| responseHandler = new WebSocketResponseHandler(webSocketFactory); |
| } |
| |
| @Override |
| public Response serve(IHTTPSession session) { |
| Response candidate = responseHandler.serve(session); |
| return candidate == null ? super.serve(session) : candidate; |
| } |
| |
| public WebSocket openWebSocket(IHTTPSession handshake) { |
| throw new Error(MISSING_FACTORY_MESSAGE); |
| } |
| } |
| |