@@ -12,7 +12,7 @@ WebSocketClient::WebSocketClient(Client& aClient, const char* aServerName, uint1
12
12
{
13
13
}
14
14
15
- WebSocketClient::WebSocketClient (Client& aClient, const String& aServerName, uint16_t aServerPort)
15
+ WebSocketClient::WebSocketClient (Client& aClient, const String& aServerName, uint16_t aServerPort)
16
16
: HttpClient(aClient, aServerName, aServerPort),
17
17
iTxStarted(false ),
18
18
iRxSize(0 )
@@ -26,7 +26,7 @@ WebSocketClient::WebSocketClient(Client& aClient, const IPAddress& aServerAddres
26
26
{
27
27
}
28
28
29
- int WebSocketClient::begin (const char * aPath)
29
+ int WebSocketClient::begin (const char * aPath, char * (*additionalHeaders)[2], size_t headerRows )
30
30
{
31
31
// start the GET request
32
32
beginRequest ();
@@ -51,6 +51,10 @@ int WebSocketClient::begin(const char* aPath)
51
51
sendHeader (" Connection" , " Upgrade" );
52
52
sendHeader (" Sec-WebSocket-Key" , base64RandomKey);
53
53
sendHeader (" Sec-WebSocket-Version" , " 13" );
54
+ for (size_t i = 0 ; i < headerRows; ++i)
55
+ {
56
+ sendHeader (additionalHeaders[i][0 ], additionalHeaders[i][1 ]);
57
+ }
54
58
endRequest ();
55
59
56
60
status = responseStatusCode ();
@@ -67,9 +71,14 @@ int WebSocketClient::begin(const char* aPath)
67
71
return (status == 101 ) ? 0 : status;
68
72
}
69
73
74
+ int WebSocketClient::begin (const char * aPath)
75
+ {
76
+ return begin (aPath, NULL , 0 );
77
+ }
78
+
70
79
int WebSocketClient::begin (const String& aPath)
71
80
{
72
- return begin (aPath.c_str ());
81
+ return begin (aPath.c_str (), NULL , 0 );
73
82
}
74
83
75
84
int WebSocketClient::beginMessage (int aType)
@@ -174,7 +183,7 @@ size_t WebSocketClient::write(const uint8_t *aBuffer, size_t aSize)
174
183
memcpy (iTxBuffer + iTxSize, aBuffer, aSize);
175
184
176
185
iTxSize += aSize;
177
-
186
+
178
187
return aSize;
179
188
}
180
189
@@ -217,14 +226,14 @@ int WebSocketClient::parseMessage()
217
226
}
218
227
else
219
228
{
220
- iRxSize = ((uint64_t )HttpClient::read () << 56 ) |
221
- ((uint64_t )HttpClient::read () << 48 ) |
222
- ((uint64_t )HttpClient::read () << 40 ) |
223
- ((uint64_t )HttpClient::read () << 32 ) |
224
- ((uint64_t )HttpClient::read () << 24 ) |
225
- ((uint64_t )HttpClient::read () << 16 ) |
229
+ iRxSize = ((uint64_t )HttpClient::read () << 56 ) |
230
+ ((uint64_t )HttpClient::read () << 48 ) |
231
+ ((uint64_t )HttpClient::read () << 40 ) |
232
+ ((uint64_t )HttpClient::read () << 32 ) |
233
+ ((uint64_t )HttpClient::read () << 24 ) |
234
+ ((uint64_t )HttpClient::read () << 16 ) |
226
235
((uint64_t )HttpClient::read () << 8 ) |
227
- (uint64_t )HttpClient::read ();
236
+ (uint64_t )HttpClient::read ();
228
237
}
229
238
230
239
// read in the mask, if present
0 commit comments