mirror of
https://github.com/me-no-dev/ESPAsyncWebServer.git
synced 2025-09-28 07:11:01 +02:00
Fix include directives to make ArduinoJson optional and fix CI
This commit is contained in:
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@@ -106,6 +106,9 @@ jobs:
|
|||||||
- env: ci-arduino-3
|
- env: ci-arduino-3
|
||||||
board: esp32-h2-devkitm-1
|
board: esp32-h2-devkitm-1
|
||||||
|
|
||||||
|
- env: ci-arduino-3-no-json
|
||||||
|
board: esp32dev
|
||||||
|
|
||||||
- env: ci-arduino-310rc1
|
- env: ci-arduino-310rc1
|
||||||
board: esp32dev
|
board: esp32dev
|
||||||
- env: ci-arduino-310rc1
|
- env: ci-arduino-310rc1
|
||||||
|
@@ -19,9 +19,12 @@
|
|||||||
|
|
||||||
#include <ESPAsyncWebServer.h>
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
#include <AsyncJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <AsyncMessagePack.h>
|
#include <AsyncJson.h>
|
||||||
|
#include <AsyncMessagePack.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <LittleFS.h>
|
#include <LittleFS.h>
|
||||||
|
|
||||||
AsyncWebServer server(80);
|
AsyncWebServer server(80);
|
||||||
@@ -103,8 +106,10 @@ void notFound(AsyncWebServerRequest* request) {
|
|||||||
request->send(404, "text/plain", "Not found");
|
request->send(404, "text/plain", "Not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
AsyncCallbackJsonWebHandler* jsonHandler = new AsyncCallbackJsonWebHandler("/json2");
|
AsyncCallbackJsonWebHandler* jsonHandler = new AsyncCallbackJsonWebHandler("/json2");
|
||||||
AsyncCallbackMessagePackWebHandler* msgPackHandler = new AsyncCallbackMessagePackWebHandler("/msgpack2");
|
AsyncCallbackMessagePackWebHandler* msgPackHandler = new AsyncCallbackMessagePackWebHandler("/msgpack2");
|
||||||
|
#endif
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
|
||||||
@@ -293,6 +298,7 @@ void setup() {
|
|||||||
request->send(200, "text/plain", "Hello, POST: " + message);
|
request->send(200, "text/plain", "Hello, POST: " + message);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
// JSON
|
// JSON
|
||||||
|
|
||||||
// receives JSON and sends JSON
|
// receives JSON and sends JSON
|
||||||
@@ -338,6 +344,7 @@ void setup() {
|
|||||||
response->setLength();
|
response->setLength();
|
||||||
request->send(response);
|
request->send(response);
|
||||||
});
|
});
|
||||||
|
#endif
|
||||||
|
|
||||||
events.onConnect([](AsyncEventSourceClient* client) {
|
events.onConnect([](AsyncEventSourceClient* client) {
|
||||||
if (client->lastId()) {
|
if (client->lastId()) {
|
||||||
@@ -376,8 +383,11 @@ void setup() {
|
|||||||
|
|
||||||
server.addHandler(&events);
|
server.addHandler(&events);
|
||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
|
|
||||||
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
server.addHandler(jsonHandler);
|
server.addHandler(jsonHandler);
|
||||||
server.addHandler(msgPackHandler);
|
server.addHandler(msgPackHandler);
|
||||||
|
#endif
|
||||||
|
|
||||||
server.onNotFound(notFound);
|
server.onNotFound(notFound);
|
||||||
|
|
||||||
|
@@ -36,6 +36,13 @@ platform = https://github.com/pioarduino/platform-espressif32/releases/download/
|
|||||||
; board = esp32-s3-devkitc-1
|
; board = esp32-s3-devkitc-1
|
||||||
; board = esp32-c6-devkitc-1
|
; board = esp32-c6-devkitc-1
|
||||||
|
|
||||||
|
[env:arduino-3-no-json]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
|
; board = esp32-s3-devkitc-1
|
||||||
|
; board = esp32-c6-devkitc-1
|
||||||
|
lib_deps =
|
||||||
|
mathieucarbou/AsyncTCP @ 3.2.5
|
||||||
|
|
||||||
[env:arduino-310rc1]
|
[env:arduino-310rc1]
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
||||||
; board = esp32-s3-devkitc-1
|
; board = esp32-s3-devkitc-1
|
||||||
@@ -74,6 +81,12 @@ board = ${sysenv.PIO_BOARD}
|
|||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
board = ${sysenv.PIO_BOARD}
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
|
||||||
|
[env:ci-arduino-3-no-json]
|
||||||
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
|
||||||
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
lib_deps =
|
||||||
|
mathieucarbou/AsyncTCP @ 3.2.5
|
||||||
|
|
||||||
[env:ci-arduino-310rc1]
|
[env:ci-arduino-310rc1]
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10-rc1/platform-espressif32.zip
|
||||||
board = ${sysenv.PIO_BOARD}
|
board = ${sysenv.PIO_BOARD}
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#include "AsyncJson.h"
|
#include "AsyncJson.h"
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ASYNC_JSON_SUPPORT == 1
|
||||||
|
|
||||||
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
_contentType = JSON_MIMETYPE;
|
_contentType = JSON_MIMETYPE;
|
||||||
@@ -9,7 +11,7 @@ AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
|||||||
else
|
else
|
||||||
_root = _jsonBuffer.createObject();
|
_root = _jsonBuffer.createObject();
|
||||||
}
|
}
|
||||||
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
AsyncJsonResponse::AsyncJsonResponse(bool isArray, size_t maxJsonBufferSize) : _jsonBuffer(maxJsonBufferSize), _isValid{false} {
|
AsyncJsonResponse::AsyncJsonResponse(bool isArray, size_t maxJsonBufferSize) : _jsonBuffer(maxJsonBufferSize), _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
_contentType = JSON_MIMETYPE;
|
_contentType = JSON_MIMETYPE;
|
||||||
@@ -18,7 +20,7 @@ AsyncJsonResponse::AsyncJsonResponse(bool isArray, size_t maxJsonBufferSize) : _
|
|||||||
else
|
else
|
||||||
_root = _jsonBuffer.createNestedObject();
|
_root = _jsonBuffer.createNestedObject();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
_contentType = JSON_MIMETYPE;
|
_contentType = JSON_MIMETYPE;
|
||||||
@@ -27,14 +29,14 @@ AsyncJsonResponse::AsyncJsonResponse(bool isArray) : _isValid{false} {
|
|||||||
else
|
else
|
||||||
_root = _jsonBuffer.add<JsonObject>();
|
_root = _jsonBuffer.add<JsonObject>();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t AsyncJsonResponse::setLength() {
|
size_t AsyncJsonResponse::setLength() {
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
_contentLength = _root.measureLength();
|
_contentLength = _root.measureLength();
|
||||||
#else
|
#else
|
||||||
_contentLength = measureJson(_root);
|
_contentLength = measureJson(_root);
|
||||||
#endif
|
#endif
|
||||||
if (_contentLength) {
|
if (_contentLength) {
|
||||||
_isValid = true;
|
_isValid = true;
|
||||||
}
|
}
|
||||||
@@ -43,26 +45,26 @@ size_t AsyncJsonResponse::setLength() {
|
|||||||
|
|
||||||
size_t AsyncJsonResponse::_fillBuffer(uint8_t* data, size_t len) {
|
size_t AsyncJsonResponse::_fillBuffer(uint8_t* data, size_t len) {
|
||||||
ChunkPrint dest(data, _sentLength, len);
|
ChunkPrint dest(data, _sentLength, len);
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
_root.printTo(dest);
|
_root.printTo(dest);
|
||||||
#else
|
#else
|
||||||
serializeJson(_root, dest);
|
serializeJson(_root, dest);
|
||||||
#endif
|
#endif
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
PrettyAsyncJsonResponse::PrettyAsyncJsonResponse(bool isArray, size_t maxJsonBufferSize) : AsyncJsonResponse{isArray, maxJsonBufferSize} {}
|
PrettyAsyncJsonResponse::PrettyAsyncJsonResponse(bool isArray, size_t maxJsonBufferSize) : AsyncJsonResponse{isArray, maxJsonBufferSize} {}
|
||||||
#else
|
#else
|
||||||
PrettyAsyncJsonResponse::PrettyAsyncJsonResponse(bool isArray) : AsyncJsonResponse{isArray} {}
|
PrettyAsyncJsonResponse::PrettyAsyncJsonResponse(bool isArray) : AsyncJsonResponse{isArray} {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t PrettyAsyncJsonResponse::setLength() {
|
size_t PrettyAsyncJsonResponse::setLength() {
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
_contentLength = _root.measurePrettyLength();
|
_contentLength = _root.measurePrettyLength();
|
||||||
#else
|
#else
|
||||||
_contentLength = measureJsonPretty(_root);
|
_contentLength = measureJsonPretty(_root);
|
||||||
#endif
|
#endif
|
||||||
if (_contentLength) {
|
if (_contentLength) {
|
||||||
_isValid = true;
|
_isValid = true;
|
||||||
}
|
}
|
||||||
@@ -71,21 +73,21 @@ size_t PrettyAsyncJsonResponse::setLength() {
|
|||||||
|
|
||||||
size_t PrettyAsyncJsonResponse::_fillBuffer(uint8_t* data, size_t len) {
|
size_t PrettyAsyncJsonResponse::_fillBuffer(uint8_t* data, size_t len) {
|
||||||
ChunkPrint dest(data, _sentLength, len);
|
ChunkPrint dest(data, _sentLength, len);
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
_root.prettyPrintTo(dest);
|
_root.prettyPrintTo(dest);
|
||||||
#else
|
#else
|
||||||
serializeJsonPretty(_root, dest);
|
serializeJsonPretty(_root, dest);
|
||||||
#endif
|
#endif
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
AsyncCallbackJsonWebHandler::AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest, size_t maxJsonBufferSize)
|
AsyncCallbackJsonWebHandler::AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest, size_t maxJsonBufferSize)
|
||||||
: _uri(uri), _method(HTTP_GET | HTTP_POST | HTTP_PUT | HTTP_PATCH), _onRequest(onRequest), maxJsonBufferSize(maxJsonBufferSize), _maxContentLength(16384) {}
|
: _uri(uri), _method(HTTP_GET | HTTP_POST | HTTP_PUT | HTTP_PATCH), _onRequest(onRequest), maxJsonBufferSize(maxJsonBufferSize), _maxContentLength(16384) {}
|
||||||
#else
|
#else
|
||||||
AsyncCallbackJsonWebHandler::AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest)
|
AsyncCallbackJsonWebHandler::AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest)
|
||||||
: _uri(uri), _method(HTTP_GET | HTTP_POST | HTTP_PUT | HTTP_PATCH), _onRequest(onRequest), _maxContentLength(16384) {}
|
: _uri(uri), _method(HTTP_GET | HTTP_POST | HTTP_PUT | HTTP_PATCH), _onRequest(onRequest), _maxContentLength(16384) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool AsyncCallbackJsonWebHandler::canHandle(AsyncWebServerRequest* request) {
|
bool AsyncCallbackJsonWebHandler::canHandle(AsyncWebServerRequest* request) {
|
||||||
if (!_onRequest)
|
if (!_onRequest)
|
||||||
@@ -112,21 +114,21 @@ void AsyncCallbackJsonWebHandler::handleRequest(AsyncWebServerRequest* request)
|
|||||||
return;
|
return;
|
||||||
} else if (request->_tempObject != NULL) {
|
} else if (request->_tempObject != NULL) {
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
DynamicJsonBuffer jsonBuffer;
|
DynamicJsonBuffer jsonBuffer;
|
||||||
JsonVariant json = jsonBuffer.parse((uint8_t*)(request->_tempObject));
|
JsonVariant json = jsonBuffer.parse((uint8_t*)(request->_tempObject));
|
||||||
if (json.success()) {
|
if (json.success()) {
|
||||||
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize);
|
DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize);
|
||||||
DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject));
|
DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject));
|
||||||
if (!error) {
|
if (!error) {
|
||||||
JsonVariant json = jsonBuffer.as<JsonVariant>();
|
JsonVariant json = jsonBuffer.as<JsonVariant>();
|
||||||
#else
|
#else
|
||||||
JsonDocument jsonBuffer;
|
JsonDocument jsonBuffer;
|
||||||
DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject));
|
DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject));
|
||||||
if (!error) {
|
if (!error) {
|
||||||
JsonVariant json = jsonBuffer.as<JsonVariant>();
|
JsonVariant json = jsonBuffer.as<JsonVariant>();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_onRequest(request, json);
|
_onRequest(request, json);
|
||||||
return;
|
return;
|
||||||
@@ -149,3 +151,5 @@ void AsyncCallbackJsonWebHandler::handleBody(AsyncWebServerRequest* request, uin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // ASYNC_JSON_SUPPORT
|
||||||
|
@@ -34,16 +34,21 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef ASYNC_JSON_H_
|
#ifndef ASYNC_JSON_H_
|
||||||
#define ASYNC_JSON_H_
|
#define ASYNC_JSON_H_
|
||||||
#include <ArduinoJson.h>
|
|
||||||
#include <ESPAsyncWebServer.h>
|
|
||||||
|
|
||||||
#include "ChunkPrint.h"
|
#if __has_include("ArduinoJson.h")
|
||||||
|
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#define ASYNC_JSON_SUPPORT 1
|
||||||
#ifndef DYNAMIC_JSON_DOCUMENT_SIZE
|
|
||||||
#define DYNAMIC_JSON_DOCUMENT_SIZE 1024
|
#include <ArduinoJson.h>
|
||||||
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
|
#include "ChunkPrint.h"
|
||||||
|
|
||||||
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
|
#ifndef DYNAMIC_JSON_DOCUMENT_SIZE
|
||||||
|
#define DYNAMIC_JSON_DOCUMENT_SIZE 1024
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
constexpr const char* JSON_MIMETYPE = "application/json";
|
constexpr const char* JSON_MIMETYPE = "application/json";
|
||||||
|
|
||||||
@@ -53,40 +58,40 @@ constexpr const char* JSON_MIMETYPE = "application/json";
|
|||||||
|
|
||||||
class AsyncJsonResponse : public AsyncAbstractResponse {
|
class AsyncJsonResponse : public AsyncAbstractResponse {
|
||||||
protected:
|
protected:
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 5
|
#if ARDUINOJSON_VERSION_MAJOR == 5
|
||||||
DynamicJsonBuffer _jsonBuffer;
|
DynamicJsonBuffer _jsonBuffer;
|
||||||
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
#elif ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
DynamicJsonDocument _jsonBuffer;
|
DynamicJsonDocument _jsonBuffer;
|
||||||
#else
|
#else
|
||||||
JsonDocument _jsonBuffer;
|
JsonDocument _jsonBuffer;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
JsonVariant _root;
|
JsonVariant _root;
|
||||||
bool _isValid;
|
bool _isValid;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
AsyncJsonResponse(bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
AsyncJsonResponse(bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
||||||
#else
|
#else
|
||||||
AsyncJsonResponse(bool isArray = false);
|
AsyncJsonResponse(bool isArray = false);
|
||||||
#endif
|
#endif
|
||||||
JsonVariant& getRoot() { return _root; }
|
JsonVariant& getRoot() { return _root; }
|
||||||
bool _sourceValid() const { return _isValid; }
|
bool _sourceValid() const { return _isValid; }
|
||||||
size_t setLength();
|
size_t setLength();
|
||||||
size_t getSize() const { return _jsonBuffer.size(); }
|
size_t getSize() const { return _jsonBuffer.size(); }
|
||||||
size_t _fillBuffer(uint8_t* data, size_t len);
|
size_t _fillBuffer(uint8_t* data, size_t len);
|
||||||
#if ARDUINOJSON_VERSION_MAJOR >= 6
|
#if ARDUINOJSON_VERSION_MAJOR >= 6
|
||||||
bool overflowed() const { return _jsonBuffer.overflowed(); }
|
bool overflowed() const { return _jsonBuffer.overflowed(); }
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
class PrettyAsyncJsonResponse : public AsyncJsonResponse {
|
class PrettyAsyncJsonResponse : public AsyncJsonResponse {
|
||||||
public:
|
public:
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
PrettyAsyncJsonResponse(bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
PrettyAsyncJsonResponse(bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
||||||
#else
|
#else
|
||||||
PrettyAsyncJsonResponse(bool isArray = false);
|
PrettyAsyncJsonResponse(bool isArray = false);
|
||||||
#endif
|
#endif
|
||||||
size_t setLength();
|
size_t setLength();
|
||||||
size_t _fillBuffer(uint8_t* data, size_t len);
|
size_t _fillBuffer(uint8_t* data, size_t len);
|
||||||
};
|
};
|
||||||
@@ -99,17 +104,17 @@ class AsyncCallbackJsonWebHandler : public AsyncWebHandler {
|
|||||||
WebRequestMethodComposite _method;
|
WebRequestMethodComposite _method;
|
||||||
ArJsonRequestHandlerFunction _onRequest;
|
ArJsonRequestHandlerFunction _onRequest;
|
||||||
size_t _contentLength;
|
size_t _contentLength;
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
const size_t maxJsonBufferSize;
|
const size_t maxJsonBufferSize;
|
||||||
#endif
|
#endif
|
||||||
size_t _maxContentLength;
|
size_t _maxContentLength;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#if ARDUINOJSON_VERSION_MAJOR == 6
|
#if ARDUINOJSON_VERSION_MAJOR == 6
|
||||||
AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest = nullptr, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest = nullptr, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
|
||||||
#else
|
#else
|
||||||
AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest = nullptr);
|
AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest = nullptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void setMethod(WebRequestMethodComposite method) { _method = method; }
|
void setMethod(WebRequestMethodComposite method) { _method = method; }
|
||||||
void setMaxContentLength(int maxContentLength) { _maxContentLength = maxContentLength; }
|
void setMaxContentLength(int maxContentLength) { _maxContentLength = maxContentLength; }
|
||||||
@@ -121,4 +126,9 @@ class AsyncCallbackJsonWebHandler : public AsyncWebHandler {
|
|||||||
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
||||||
virtual bool isRequestHandlerTrivial() override final { return !_onRequest; }
|
virtual bool isRequestHandlerTrivial() override final { return !_onRequest; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else // __has_include("ArduinoJson.h")
|
||||||
|
#define ASYNC_JSON_SUPPORT 0
|
||||||
|
#endif // __has_include("ArduinoJson.h")
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
#include "AsyncMessagePack.h"
|
#include "AsyncMessagePack.h"
|
||||||
|
|
||||||
|
#if ASYNC_MSG_PACK_SUPPORT == 1
|
||||||
|
|
||||||
AsyncMessagePackResponse::AsyncMessagePackResponse(bool isArray) : _isValid{false} {
|
AsyncMessagePackResponse::AsyncMessagePackResponse(bool isArray) : _isValid{false} {
|
||||||
_code = 200;
|
_code = 200;
|
||||||
_contentType = asyncsrv::T_application_msgpack;
|
_contentType = asyncsrv::T_application_msgpack;
|
||||||
@@ -77,3 +79,5 @@ void AsyncCallbackMessagePackWebHandler::handleBody(AsyncWebServerRequest* reque
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // ASYNC_MSG_PACK_SUPPORT
|
||||||
|
@@ -21,10 +21,14 @@
|
|||||||
server.addHandler(handler);
|
server.addHandler(handler);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#if __has_include("ArduinoJson.h")
|
||||||
#include <ESPAsyncWebServer.h>
|
|
||||||
|
|
||||||
#include "ChunkPrint.h"
|
#define ASYNC_MSG_PACK_SUPPORT 1
|
||||||
|
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
#include <ESPAsyncWebServer.h>
|
||||||
|
|
||||||
|
#include "ChunkPrint.h"
|
||||||
|
|
||||||
class AsyncMessagePackResponse : public AsyncAbstractResponse {
|
class AsyncMessagePackResponse : public AsyncAbstractResponse {
|
||||||
protected:
|
protected:
|
||||||
@@ -65,3 +69,7 @@ class AsyncCallbackMessagePackWebHandler : public AsyncWebHandler {
|
|||||||
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
virtual void handleBody(AsyncWebServerRequest* request, uint8_t* data, size_t len, size_t index, size_t total) override final;
|
||||||
virtual bool isRequestHandlerTrivial() override final { return _onRequest ? false : true; }
|
virtual bool isRequestHandlerTrivial() override final { return _onRequest ? false : true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else // __has_include("ArduinoJson.h")
|
||||||
|
#define ASYNC_MSG_PACK_SUPPORT 0
|
||||||
|
#endif // __has_include("ArduinoJson.h")
|
||||||
|
Reference in New Issue
Block a user