Il server dovrebbe accumulare diverse richieste e restituire la risposta per tutti

0

Ad esempio, ho un server [c #] e 4 client. Quando il primo client invia una richiesta al server, desidero inviare una notifica agli altri 3 client affinché inviino una richiesta al server con alcuni dati richiesti. Dopo aver ricevuto richieste da tutti i client, desidero inviare la stessa risposta a tutti loro.

Qual è il modo migliore / pattern per implementare qualcosa di simile?

    
posta user681055 26.07.2014 - 11:01
fonte

2 risposte

1

Questo tipo di schema richiederebbe una comunicazione bidirezionale tra il server e i suoi client. Un approccio diretto sarebbe utilizzare il protocollo WebSocket , ma le applicazioni in esecuzione sulla piattaforma .NET potrebbero trarre vantaggio da SignalR .

    
risposta data 26.07.2014 - 19:59
fonte
0

Poiché WCF supporta le comunicazioni bidirezionali , questo è tecnicamente possibile Quando il client C 1 invia una richiesta attraverso il canale, il server invia le richieste a C 2 , C 3 e C 4 e attende fino a quando quei client rispondono. Dopo che tutti e quattro hanno risposto, il server invia la risposta finale.

Ma sei sicuro di volerlo fare?

Non sembra che tu guadagni nulla rispetto ai più ordinari modelli di comunicazione.

  • Se pensi di guadagnare larghezza di banda, non lo sei (perderai anche molto facendo tutte le richieste e le risposte aggiuntive).

  • Se si pensa che il footprint del server verrà ridotto evitando di generare sempre la stessa risposta a più client, anche questo è un falso presupposto: aumenterà (ancora, a causa di tali richieste aggiuntive e risposte). Il caching , d'altro canto, sarà più appropriato.

Lo svantaggio è che se uno qualsiasi dei quattro client è inattivo, gli altri non riceveranno mai la risposta.

    
risposta data 26.07.2014 - 19:58
fonte

Leggi altre domande sui tag