WinHTTP over HTTP / 2 с мультиплексированием - PullRequest
0 голосов
/ 28 января 2020

Мне интересно, возможно ли с помощью Windows API WinHTTP использовать мультиплексирование HTTP / 2 (несколько запросов по одному TCP-соединению). Если да, то есть ли пример кода, как это заархивировать?

Я нашел это сообщение от Microsoft (https://docs.microsoft.com/en-us/windows/win32/winhttp/about-winhttp):

Внимание

WinHTTP не является повторно входящим, кроме как во время обратного вызова асинхронного завершения. То есть, хотя поток имеет ожидающий вызов одну из функций WinHTTP, таких как WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData или WinHttpWriteData, он никогда не должен вызывать WinHTTP второй раз, пока первый вызов не будет завершен. Один сценарий, при котором может произойти второй вызов, выглядит следующим образом: если приложение ставит в очередь асинхронный вызов процедуры (AP C) в поток, который вызывает WinHTTP, и если WinHTTP выполняет внутреннее ожидание с предупреждением, AP C может запустить. Если подпрограмма AP C также вызывает WinHTTP, она повторно вводит WinHTTP API, и внутреннее состояние WinHTTP может быть повреждено.

Вот почему я не уверен, что асинхронные вызовы WinHttpReadData возможны.

...