Есть ли пример использования HttpSendHttpResponse флага HTTP_SEND_RESPONSE_FLAG_OPAQUE (необходим для поддержки WebSocket)? - PullRequest
0 голосов
/ 19 февраля 2019

Я использую HttpSendHttpResponse() с флагом HTTP_SEND_RESPONSE_FLAG_OPAQUE, как предложено Microsoft (только с 101 статусом ответа и заголовками ответа, подготовленными с использованием функции WebSocketBeginServerHandshake()), но я получаю ошибку ERROR_INVALID_PARAMETER.

Без этого флага я могу установить соединение WebSocket с моим сервером через браузер, но насколько я знаю, я не смогу использовать это соединение как WebSocket, потому что HTTP.SYS попытается интерпретироватьтрафик соединения в HTTP-рамке.

Может ли кто-нибудь предоставить мне ссылку на рабочий пример HttpSendHttpResponse() использования флага HTTP_SEND_RESPONSE_FLAG_OPAQUE?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

На основе документа: HttpSendHttpResponse

HttpSendHttpResponse возвращает ERROR_INVALID_PARAMETER для всех других типов ответов HTTP, если используется флаг HTTP_SEND_RESPONSE_FLAG_OPAQUE * 100 * * 100 * * 100 * * 100 *.ожидается.Просто временно игнорируйте эту ошибку, и вы можете проверить приемную часть, чтобы увидеть, может ли она получить правильные данные.

0 голосов
/ 20 февраля 2019

Я нашел способ правильно использовать флаг HTTP_SEND_RESPONSE_FLAG_OPAQUE: его нужно использовать вместе с флагом HTTP_SEND_RESPONSE_FLAG_MORE_DATA.К сожалению, Microsoft не упоминает этот нюанс в своей документации.

...