Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit53aaae1

Browse files
committed
FirebaseHttpClient: add forceReuse
FixesFirebaseExtended#230
1 parent7144703 commit53aaae1

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

‎src/FirebaseHttpClient_Esp8266.cpp

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,44 @@
1515
#defineUSE_ESP_ARDUINO_CORE_2_0_0
1616
#endif
1717

18+
// Firebase now returns `Connection: close` after REST streaming redirection.
19+
//
20+
// Override the built-in ESP8266HTTPClient to *not* close the
21+
// connection if forceReuse it set to `true`.
22+
classForceReuseHTTPClient :publicHTTPClient {
23+
public:
24+
voidend() {
25+
if(connected()) {
26+
if(_tcp->available() >0) {
27+
DEBUG_HTTPCLIENT("[HTTP-Client][end] still data in buffer (%d), clean up.\n", _tcp->available());
28+
while(_tcp->available() >0) {
29+
_tcp->read();
30+
}
31+
}
32+
if(_reuse && (_canReuse || _forceReuse)) {
33+
DEBUG_HTTPCLIENT("[HTTP-Client][end] tcp keep open for reuse\n");
34+
}else {
35+
DEBUG_HTTPCLIENT("[HTTP-Client][end] tcp stop\n");
36+
_tcp->stop();
37+
}
38+
}else {
39+
DEBUG_HTTPCLIENT("[HTTP-Client][end] tcp is closed\n");
40+
}
41+
}
42+
voidforceReuse(bool forceReuse) {
43+
_forceReuse = forceReuse;
44+
}
45+
protected:
46+
bool _forceReuse =false;
47+
};
48+
1849
classFirebaseHttpClientEsp8266 :publicFirebaseHttpClient {
1950
public:
2051
FirebaseHttpClientEsp8266() {}
2152

22-
voidsetReuseConnection(bool reuse)override {
53+
voidsetReuseConnection(bool reuse)override {
2354
http_.setReuse(reuse);
55+
http_.forceReuse(reuse);
2456
}
2557

2658
voidbegin(const std::string& url)override {
@@ -64,7 +96,7 @@ class FirebaseHttpClientEsp8266 : public FirebaseHttpClient {
6496
}
6597

6698
private:
67-
HTTPClient http_;
99+
ForceReuseHTTPClient http_;
68100
};
69101

70102
FirebaseHttpClient*FirebaseHttpClient::create() {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp