首页 > 解决方案 > 是否可以使用 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++ 中创建一个客户端。

请提出您宝贵的意见。谢谢你。

标签: c++httppush-notificationwinhttp

解决方案


使用“WinHttpSetTimeouts”API 将接收超时设置为无限 (-1)。然后“WinHttpSendRequest”API 将等待,直到从服务器收到响应(推送通知)。收到响应后,再次调用“WinHttpSendRequest”订阅PUSH通知。即订阅应在收到每个 PUSH 通知后完成。


推荐阅读