Warn when polling HTTPClient synchronously in HTML5 platform
This commit is contained in:
parent
2cd7bc04ea
commit
ca9fa9cca8
2 changed files with 24 additions and 0 deletions
|
@ -46,3 +46,8 @@ String password;
|
|||
int polled_response_code;
|
||||
String polled_response_header;
|
||||
PoolByteArray polled_response;
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
bool has_polled;
|
||||
uint64_t last_polling_frame;
|
||||
#endif
|
||||
|
|
|
@ -240,6 +240,21 @@ Error HTTPClient::poll() {
|
|||
return ERR_CONNECTION_ERROR;
|
||||
|
||||
case STATUS_REQUESTING:
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (!has_polled) {
|
||||
has_polled = true;
|
||||
} else {
|
||||
// forcing synchronous requests is not possible on the web
|
||||
if (last_polling_frame == Engine::get_singleton()->get_idle_frames()) {
|
||||
WARN_PRINT("HTTPClient polled multiple times in one frame, "
|
||||
"but request cannot progress more than once per "
|
||||
"frame on the HTML5 platform.");
|
||||
}
|
||||
}
|
||||
last_polling_frame = Engine::get_singleton()->get_idle_frames();
|
||||
#endif
|
||||
|
||||
polled_response_code = godot_xhr_get_status(xhr_id);
|
||||
if (godot_xhr_get_ready_state(xhr_id) != XHR_READY_STATE_DONE) {
|
||||
return OK;
|
||||
|
@ -280,6 +295,10 @@ HTTPClient::HTTPClient() {
|
|||
port = -1;
|
||||
use_tls = false;
|
||||
polled_response_code = 0;
|
||||
#ifdef DEBUG_ENABLED
|
||||
has_polled = false;
|
||||
last_polling_frame = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
HTTPClient::~HTTPClient() {
|
||||
|
|
Loading…
Reference in a new issue