我正在使用HttpSendHttpResponse()
和HTTP_SEND_RESPONSE_FLAG_OPAQUE
标志,如Microsoft所建议的(仅使用101响应状态和使用WebSocketBeginServerHandshake()
函数准备的响应头),但是我收到一个
ERROR_INVALID_PARAMETER
错误。
没有此标志,我可以通过浏览器与服务器建立WebSocket连接,但据我所知,我将无法将该连接用作WebSocket,因为HTTP.SYS
会尝试将连接流量解释为HTTP框架。
有人可以给我提供一个使用HttpSendHttpResponse()
标志的HTTP_SEND_RESPONSE_FLAG_OPAQUE
使用示例的链接吗?
答案 0 :(得分:0)
我找到了正确使用HTTP_SEND_RESPONSE_FLAG_OPAQUE标志的方法:它必须与HTTP_SEND_RESPONSE_FLAG_MORE_DATA标志一起使用。不幸的是,Microsoft在他们的文档中没有提及这一细微差别。
答案 1 :(得分:0)
基于文档:HttpSendHttpResponse
HttpSendHttpResponse对于所有其他返回ERROR_INVALID_PARAMETER 如果使用HTTP_SEND_RESPONSE_FLAG_OPAQUE标志,则为HTTP响应类型。
因此可以预期。只需暂时忽略此错误,然后您可以检查接收器部件以查看它是否可以接收正确的数据。