是否有任何使用 HTTP_SEND_RESPONSE_FLAG_OPAQUE 标志的 HttpSendHttpResponse 示例(WebSocket 支持需要)?
Is there any example of HttpSendHttpResponse usage of the HTTP_SEND_RESPONSE_FLAG_OPAQUE flag (needed for WebSocket support)?
我正在使用带有 HTTP_SEND_RESPONSE_FLAG_OPAQUE
标志的 HttpSendHttpResponse()
,正如 Microsoft 所建议的(只有 101 响应状态和使用 WebSocketBeginServerHandshake()
函数准备的响应 headers),但我收到了
ERROR_INVALID_PARAMETER
错误。
没有这个标志,我可以从我的浏览器与我的服务器建立一个 WebSocket 连接,但据我所知,我将无法将这个连接用作 WebSocket,因为 HTTP.SYS
尝试将连接流量解释为 HTTP-framed.
有人可以向我提供 link HttpSendHttpResponse()
使用 HTTP_SEND_RESPONSE_FLAG_OPAQUE
标志的工作示例吗?
我找到了正确使用 HTTP_SEND_RESPONSE_FLAG_OPAQUE 标志的方法:它必须与 HTTP_SEND_RESPONSE_FLAG_MORE_DATA 标志一起使用。不幸的是,Microsoft 没有在他们的文档中提及这种细微差别。
基于文档:HttpSendHttpResponse
HttpSendHttpResponse returns ERROR_INVALID_PARAMETER for all other
HTTP response types if HTTP_SEND_RESPONSE_FLAG_OPAQUE flag is used.
所以这是意料之中的。暂时忽略此错误,您可以检查接收部分是否可以接收到正确的数据。
我正在使用带有 HTTP_SEND_RESPONSE_FLAG_OPAQUE
标志的 HttpSendHttpResponse()
,正如 Microsoft 所建议的(只有 101 响应状态和使用 WebSocketBeginServerHandshake()
函数准备的响应 headers),但我收到了
ERROR_INVALID_PARAMETER
错误。
没有这个标志,我可以从我的浏览器与我的服务器建立一个 WebSocket 连接,但据我所知,我将无法将这个连接用作 WebSocket,因为 HTTP.SYS
尝试将连接流量解释为 HTTP-framed.
有人可以向我提供 link HttpSendHttpResponse()
使用 HTTP_SEND_RESPONSE_FLAG_OPAQUE
标志的工作示例吗?
我找到了正确使用 HTTP_SEND_RESPONSE_FLAG_OPAQUE 标志的方法:它必须与 HTTP_SEND_RESPONSE_FLAG_MORE_DATA 标志一起使用。不幸的是,Microsoft 没有在他们的文档中提及这种细微差别。
基于文档:HttpSendHttpResponse
HttpSendHttpResponse returns ERROR_INVALID_PARAMETER for all other HTTP response types if HTTP_SEND_RESPONSE_FLAG_OPAQUE flag is used.
所以这是意料之中的。暂时忽略此错误,您可以检查接收部分是否可以接收到正确的数据。