我需要一个可靠的消息传递框架,它运行在http / https上(由于客户端安全性要求)并且不使用MSMQ(因为某些客户端将使用Windows XP Home)。客户端只需要能够接收消息,而不是发送消息。
我们已经在服务器上为每个用户建立了一个消息队列,接收者通过连接到服务器上的HttpHandler并从
获取流来获取消息WebResponse.GetResponseStream()
我们保持此流打开,并使用Stream.Read()从中拉出消息。这个MOSTLY可以工作,但Stream.Read()是一个阻塞调用,我们无法可靠地中断它。我们需要能够在不丢失消息的情况下停止和启动接收器,但是旧的流经常会挂起,即使我们在其线程上调用Thread.Abort也是如此。
有什么建议吗?
答案 0 :(得分:3)
我会使用WCF。它支持WS-ReliableMessaging标准。您可以对其进行配置,以确保邮件以正确的顺序到达。
答案 1 :(得分:1)
关于锁定问题,您是否考虑过WCF框架?
单。一次一个线程可以访问服务对象。这是此属性的默认值。 折返。一次一个线程可以访问服务对象,但线程可以退出并重新进入。 多。一次有多个线程可以访问服务对象。
http://msdn.microsoft.com/en-us/library/dd936243.aspx
它允许对多个调用的服务行为进行大量控制,并且可以使用http和https。