c++ - 是否可以使用 WinHttp API 编写 C++ 客户端来接收来自 HTTP 服务器的推送通知?
问题描述
我使用 .NET Framework WebAPI 项目使用参考创建了一个示例聊天应用程序:https ://www.c-sharpcorner.com/article/push-notification-in-web-application-using-web-api-and-pushcontentstream ) 在此处输入链接描述
我试图创建一个 MFC 客户端应用程序来与该服务器进行通信。为此使用了 WinHttp 函数。但是在使用“WinHttpSendRequest”API 发送请求时,它会等待一段时间(~30 秒)并返回成功。调用“WinHttpSendRequest”API 时,WebAPI 聊天服务器立即收到请求。然后在调用“WinHttpReceiveResponse”API 时,它会因超时错误而失败。
示例 MFC 客户端应用程序可以与其他可以发送 HTTP 响应的服务器通信,而不是 content-type: text/event-stream。
所以我的疑问是,是否可以在 C++ 中创建一个 http 客户端来订阅 PUSH 通知并接收 PUSH 通知(内容类型:文本/事件流)?我的目标是使用 Windows 默认库在 C++ 中创建一个客户端。
请提出您宝贵的意见。谢谢你。
解决方案
使用“WinHttpSetTimeouts”API 将接收超时设置为无限 (-1)。然后“WinHttpSendRequest”API 将等待,直到从服务器收到响应(推送通知)。收到响应后,再次调用“WinHttpSendRequest”订阅PUSH通知。即订阅应在收到每个 PUSH 通知后完成。
推荐阅读
- c++ - 计算 PI 至小数点后 42 位
- webdriver - 是否有直接的方法来安装和配置具有 Internet Explorer 11 和 Egde 支持的 WebdriverIO
- javascript - 使用可管道化的 RxJs 操作符实现复杂的文件上传场景?
- android - 滚动后嵌套recyclerview中的图像更改为错误图像
- c - 是什么导致这个 memset() 中的分段错误?
- python - 熊猫 Python 数据框
- c++ - 在头文件和 cpp 文件中使用 #pragma 时出现结构重定义错误
- python - 根据组值拆分训练中的数据集并进行测试?
- java - JavaFX 在 TreeView 上取消选择项目
- javascript - Webpack/Babel:ES6 关键字“async/await”在转译的 bundle.js 中未转换