2010-04-03 48 views
2

我需要通过HTTP/HTTPS运行(由于客户端的安全需求),不使用MSMQ(因为某些客户端将使用Windows XP家庭版),可靠的消息传递框架。客户端只需要能够接收消息,而不是发送消息。我怎样才能收到通过HTTP消息,而不MSMQ

我们已经在服务器为每个用户在消息队列中,接收器已经被连接到一个HttpHandler的服务器上,并正从

WebResponse.GetResponseStream() 

的Stream我们保持这种流开放获取的消息,并使用Stream.Read()将消息拉出。这大部分工作,但Stream.Read()是一个阻塞调用,我们不能可靠地中断它。我们需要能够在不丢失消息的情况下停止并启动接收器,但即使我们在其线程上调用Thread.Abort之后,旧的流仍然经常挂起。

有什么建议吗?

回答

3

我会使用WCF。它支持WS-ReliableMessaging标准。您可以对其进行配置,以保证消息以正确的顺序到达。

1

关于锁定问题,你有没有考虑WCF框架?

单。一次一个线程可以访问服务对象。这是此属性的默认值。 可重入。一次一个线程可以访问服务对象,但线程可以退出并重新输入。 多个。一次有多个线程可以访问服务对象。

http://msdn.microsoft.com/en-us/library/dd936243.aspx

它允许在服务多次调用的行为大量的控制,并与HTTP和HTTPS的作品。