| 576 | } |
| 577 | |
| 578 | Result HttpWebSocketClientHandshake::connect(HttpAsyncClient& newClient, AsyncEventLoop& loop, StringSpan url, |
| 579 | StringSpan newClientKey, HttpWebSocketTransportView& newTransport) |
| 580 | { |
| 581 | SC_TRY(HttpWebSocketHandshake::validateClientKey(newClientKey)); |
| 582 | client = &newClient; |
| 583 | transport = &newTransport; |
| 584 | clientKey = newClientKey; |
| 585 | transport->reset(); |
| 586 | |
| 587 | client->onPrepareRequest.bind<HttpWebSocketClientHandshake, &HttpWebSocketClientHandshake::onPrepareRequest>(*this); |
| 588 | client->onResponse.bind<HttpWebSocketClientHandshake, &HttpWebSocketClientHandshake::onResponse>(*this); |
| 589 | client->onError.bind<HttpWebSocketClientHandshake, &HttpWebSocketClientHandshake::onClientError>(*this); |
| 590 | return client->start(loop, HttpParser::Method::HttpGET, url, false); |
| 591 | } |
| 592 | |
| 593 | void HttpWebSocketClientHandshake::onPrepareRequest(HttpAsyncClientRequest& request) |
| 594 | { |