首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winhttp 8中的异步WebSockets

Winhttp 8中的异步WebSockets
EN

Stack Overflow用户
提问于 2015-04-23 16:47:27
回答 2查看 1.7K关注 0票数 3

我只想将WebSockets添加到我的应用程序中,该应用程序在异步模式下使用WinHTTP

当我需要一个WebSocket时,我会调用以下命令。

  1. 在发送请求之前: WinHttpSetOption(上下文->hRequest,WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET,NULL,0);
  2. 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运行良好。

EN

回答 2

Stack Overflow用户

发布于 2015-04-24 18:53:31

天哪!我发现它是怎么工作的!

  1. 您必须调用额外的WinHttpSetStatusCallback来设置在WinHttpWebSocketCompleteUpgrade中返回的WebSocketHandle的WebSocket回调,并且这个回调必须与调用WinHttpWebSocketCompleteUpgrade不同!
  2. 使用WinHttpSetOption标记设置上下文指针是不可能的!这不管用。dwContext In WebSocketCallback有错误的数据。调用WinHttpQueryOptionWebSocketCallback中返回错误的上下文数据。我认为这是Windows8.1中的一个BUG。我编写自己的处理程序来将上下文与WebSocketHandle连接起来。

所有这些都没有记录在MSDN中!最重要的是,我没有谷歌任何有关异步winhttp网络套接字使用的信息.所以,我是first=)如果我的研究能帮助你,我会很高兴的!

票数 3
EN

Stack Overflow用户

发布于 2015-04-24 10:39:32

似乎websockets没有收到乒乓消息的回调!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29829729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档