2010-04-03 6 views
2

J'ai besoin d'un framework de messagerie fiable qui fonctionne sur http/https (en raison des exigences de sécurité client) et qui n'utilise pas MSMQ (car certains clients utiliseront Windows XP Home). Les clients doivent uniquement pouvoir recevoir des messages, pas les envoyer.Comment recevoir des messages via http sans MSMQ

Nous avons déjà une file d'attente de messages sur le serveur pour chaque utilisateur, et les récepteurs ont été de recevoir des messages en se connectant à un HttpHandler sur le serveur et obtenir un flux de

WebResponse.GetResponseStream() 

Nous gardons ce courant ouvert, et en retirer des messages en utilisant Stream.Read(). Cela fonctionne BIEN, mais Stream.Read() est un appel bloquant, et nous ne pouvons pas l'interrompre de manière fiable. Nous devons être en mesure d'arrêter et de démarrer le récepteur sans perdre de messages, mais l'ancien flux se bloque souvent, même après que nous appelons Thread.Abort sur son fil.

Des suggestions?

Répondre

3

Je voudrais utiliser WCF. Il prend en charge la norme WS-ReliableMessaging. Vous pouvez le configurer pour que les messages arrivent et soient dans le bon ordre.

1

A propos du problème de verrouillage, avez-vous considéré le cadre WCF?

Simple. Un fil à la fois peut accéder à l'objet de service. C'est la valeur par défaut pour cette propriété. Réentrant. Un thread à la fois peut accéder à l'objet service, mais le thread peut quitter et réentrer. Multiple. Plus d'un thread à la fois peut accéder à l'objet de service.

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

Il permet beaucoup de contrôle sur la façon dont le service se comporte de multiples appels et fonctionne aussi bien avec http et https.

Questions connexes