2010-01-16 13 views
5

Je voudrais écrire un programme où vous pouvez avoir 2 clients qui se parlent en temps réel. J'ai regardé dans les services de WCF et la messagerie duplex, les contrats de données etc. mais maintenant je suis confus.Comment construire un système de messagerie dans .NET?

Fondamentalement je le vois comme:

[Client] --- msg -> [Serveur] --- msg -> [Client] et vice et versa.

Le serveur servira simplement de messager.

Pourriez-vous me diriger dans la bonne direction? J'aimerais utiliser WPF pour les applications client.

Répondre

4

Découvrez le paradigme de programmation WCF peer-to-peer. Il sera étendu dans WCF 4 (avec .NET 4 - sortie le 12 avril 2010) en autorisant le discovery dynamique (et article here) d'autres clients sur votre réseau.

+0

Merci. J'ai regardé la découverte dynamique et j'ai exécuté la solution dans VS. Je suis toujours coincé. On dirait qu'il y a une poignée de façons différentes de le faire. – williamparry

0

Peut-être que Windows Azure Service Bus (qui utilise WCF) pourrait valoir le coup d'oeil?

Le bus de service peut effectivement être utilisé comme bus de messages, ce qui est une façon de mettre en œuvre ce que vous décrivez.

+1

Sledgehammer pour casser une noix? –

+0

Pas nécessairement.Je crois que vous pouvez l'utiliser localement, et les échantillons que vous avez vus ne sont pas beaucoup plus complexes que ceux de droite wcf – Schneider

0

je peux penser à deux scénarios

  1. Les clients sont les seuls qui commencent une demande, d'envoyer ils poussent des messages et de recevoir leur demande périodiquement pour les nouveaux messages. Le principal avantage de cette architecture est qu'elle est plus résistante aux pare-feu.

  2. Les clients sont également des serveurs qui reçoivent des messages relayés par le serveur central. Le principal avantage est que les clients reçoivent des mises à jour plus rapidement et économisent de la bande passante.

+0

Je suis intéressé par l'option 2 mais je ne suis pas sûr de ce qu'il faut regarder avec WPF/WCF – williamparry

-1

J'ai écrit un programme comme votre échantillon !!! mais il en a un gros différent: Mon programme dispose d'un serveur de chat et d'un client. Ce programme utilise deux wcf service pour établir une connexion entre le client et le serveur (serveur d'appel client et envoyer un message à cet effet, le serveur reçoit le message du client et envoie le message au client). pour tous les clients se sont connectés au serveur) je pense que vous avez utilisé un service et doit être utiliser deux service (comme moi) ou utiliser Duplex Service. L'exemple du sucha barber est trop cool (WCF/WPF Chat Application en réponse eric). Il a utilisé les services duplex mais le vrai problème de cet exemple est "sucah utilisé aussi WPF et c'est un exemple expert pour les débutants (comme moi et toi)".

Si vous voulez je peux partager mon programme !!!

seethis