From 03185498e837dfda6c086f8dded303938ee6b47f Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Sat, 8 Aug 2015 19:54:36 +0200 Subject: [PATCH] allow overriding the handling of Non Websocket Connection by extending the class. see #10 --- src/WebSocketsServer.cpp | 13 +++---------- src/WebSocketsServer.h | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/WebSocketsServer.cpp b/src/WebSocketsServer.cpp index 75affd7..94a7c72 100644 --- a/src/WebSocketsServer.cpp +++ b/src/WebSocketsServer.cpp @@ -489,17 +489,10 @@ void WebSocketsServer::handleHeader(WSclient_t * client) { } } else { - DEBUG_WEBSOCKETS("[WS-Server][%d][handleHeader] no Websocket connection close.\n", client->num); - client->tcp.write("HTTP/1.1 400 Bad Request\r\n" - "Server: arduino-WebSocket-Server\r\n" - "Content-Type: text/plain\r\n" - "Content-Length: 32\r\n" - "Connection: close\r\n" - "Sec-WebSocket-Version: 13\r\n" - "\r\n" - "This is a Websocket server only!"); - clientDisconnect(client); + handleNonWebsocketConnection(client); } } } + + diff --git a/src/WebSocketsServer.h b/src/WebSocketsServer.h index 48259d2..a6b6a27 100644 --- a/src/WebSocketsServer.h +++ b/src/WebSocketsServer.h @@ -108,6 +108,24 @@ private: void handleHeader(WSclient_t * client); + /** + * called if a non Websocket connection is comming in. + * Note: can be overrided + * @param client WSclient_t * ptr to the client struct + */ + virtual void handleNonWebsocketConnection(WSclient_t * client) { + DEBUG_WEBSOCKETS("[WS-Server][%d][handleHeader] no Websocket connection close.\n", client->num); + client->tcp.write("HTTP/1.1 400 Bad Request\r\n" + "Server: arduino-WebSocket-Server\r\n" + "Content-Type: text/plain\r\n" + "Content-Length: 32\r\n" + "Connection: close\r\n" + "Sec-WebSocket-Version: 13\r\n" + "\r\n" + "This is a Websocket server only!"); + clientDisconnect(client); + } + };