我需要一个可靠的消息传递框架,该框架通过 http/https 运行(由于客户端安全要求)并且不使用 MSMQ(因为某些客户端将使用 Windows XP Home)。客户端只需要能够接收消息,而不是发送消息。
我们已经在服务器上为每个用户建立了一个消息队列,并且接收者通过连接到服务器上的 HttpHandler 并从
获取 Stream 来获取消息WebResponse.GetResponseStream()
我们保持该流打开,并使用 Stream.Read() 从中提取消息。这大部分是有效的,但是 Stream.Read() 是一个阻塞调用,我们无法可靠地中断它。我们需要能够停止和启动接收器而不丢失消息,但旧流经常挂起,即使我们在其线程上调用 Thread.Abort 之后也是如此。
有什么建议吗?
最佳答案
我会使用 WCF。它支持 WS-ReliableMessaging 标准。您可以对其进行配置,以便保证消息以正确的顺序到达。
关于c# - 如何在没有 MSMQ 的情况下通过 http 接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2571310/