2010-01-16 14 views
5

Mi piacerebbe scrivere un programma in cui è possibile avere 2 client che parlano tra loro in tempo reale. Ho esaminato i servizi della WCF e la messaggistica duplex, i contratti di dati ecc. Ma ora sono confuso.Come costruire un sistema di messaggistica in .NET?

Fondamentalmente io lo vedo come:

[Client] --- msg -> [Server] --- msg -> [Client] e viceversa.

Il server fungerà solo da messenger.

Potrebbe per favore indicarmi la direzione giusta? Mi piacerebbe usare WPF per le app client.

risposta

4

Controlla il paradigma di programmazione WCF peer-to-peer. Sarà esteso in WCF 4 (con .NET 4 - in uscita il 12 aprile 2010) consentendo la dinamica discovery (e article here) di altri client sulla rete.

+0

Grazie. Ho dato un'occhiata alla scoperta dinamica e ho gestito la soluzione in VS. Sono ancora bloccato. Sembra che ci sia una manciata di modi diversi per farlo. – williamparry

0

Forse Windows Azure Service Bus (che utilizza WCF) potrebbe valere la pena dare un'occhiata?

Il bus di servizio può essere utilizzato efficacemente come bus di messaggi, che è un modo per implementare ciò che si sta descrivendo.

+1

Sledgehammer per rompere un dado? –

+0

Non necessariamente.Credo che tu possa usarlo localmente, e i campioni che ho visto non sono molto più complessi del wcf diretto – Schneider

0

Mi vengono in mente due scenari

  1. i clienti sono gli unici che avviare una richiesta, per inviare spingono i messaggi e per ricevere chiedono periodicamente per nuovi messaggi. Il vantaggio principale di questa architettura è che è più a prova di firewall.

  2. I client sono anche server che ricevono messaggi inoltrati dal server centrale. Il vantaggio principale è che i client ricevono gli aggiornamenti più velocemente e risparmiano la larghezza di banda.

+0

Sono interessato all'opzione 2 ma non sono sicuro di cosa guardare con WPF/WCF – williamparry

-1

Ho scritto programma come il tuo campione !!! ma ha un grande diverso: il mio programma ha un server di chat e un client. i clienti possono chattare con altri (con servizio chat server)

Questo programma utilizza il servizio per due wcf per effettuare una connessione tra client e server. (client chiama server e invia messaggio per esso, server riceve messaggio dal client e invia per tutti i client sono collegati al server) Penso che tu abbia usato un servizio e debba essere utilizzato due servizi (come me) o utilizzare il servizio duplex .

L'esempio del barbiere è troppo interessante (applicazione chat WCF/WPF in risposta eric). Ha usato i servizi duplex ma il vero problema di questo esempio è "sucah usato anche WPF ed è un esempio esperto per principianti (come me e te)".

Se vuoi posso condividere il mio programma !!!

seethis

Problemi correlati