我只想将WebSockets添加到我的应用程序中,该应用程序在异步模式下使用WinHTTP。
当我需要一个WebSocket时,我会调用以下命令。
WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE中:
>pIoRequest->hWebSocketHandle= WinHttpWebSocketCompleteUpgrade(appContext->hRequest,空);WinHttpWebSocketReceive(appContext->pIoRequest->hWebSocketHandle,appContext->pszOutBuffer,RESPONSE_BUFFER_SIZE,NULL,NULL);都没有错误。
现在,我在Fiddler中看到,服务器向我的WebSocket发送一些数据,但是没有触发WINHTTP_CALLBACK_STATUS_READ_COMPLETE。
知道为什么会这样吗?如何从我的WebSocket异步读取?将数据发送到WebSocket运行良好。
发布于 2015-04-24 18:53:31
天哪!我发现它是怎么工作的!
WinHttpSetStatusCallback来设置在WinHttpWebSocketCompleteUpgrade中返回的WebSocketHandle的WebSocket回调,并且这个回调必须与调用WinHttpWebSocketCompleteUpgrade不同!WinHttpSetOption标记设置上下文指针是不可能的!这不管用。dwContext In WebSocketCallback有错误的数据。调用WinHttpQueryOption在WebSocketCallback中返回错误的上下文数据。我认为这是Windows8.1中的一个BUG。我编写自己的处理程序来将上下文与WebSocketHandle连接起来。所有这些都没有记录在MSDN中!最重要的是,我没有谷歌任何有关异步winhttp网络套接字使用的信息.所以,我是first=)如果我的研究能帮助你,我会很高兴的!
发布于 2015-04-24 10:39:32
似乎websockets没有收到乒乓消息的回调!
https://stackoverflow.com/questions/29829729
复制相似问题