WCF VS. Prese

Vorrei sapere quale di WCF o .NET Socket è il più efficiente e il più consigliato in un gioco di sviluppo scenario.

Qui ci sono le diverse parti del gioco :

-una comunicazione client/server per giocare su internet

-peer to peer su rete locale.

Vorrei sapere quale tecnologia utilizzare su queste parti (wcf su entrambi, presa di corrente su entrambi, wcf su uno zoccolo…) e perché, se possibile.

Il gioco non si richiedono una elevata frequenza di comunicazione (3-4 al secondo è sufficiente).

Come hai intenzione di fare al cliente/client in rete locale? Che non ha senso.
egli significa peer 2 peer; ha senso
No, peer to peer di senso. Non da cliente a cliente.
sì, voglio dire, il p2p. io modificare se vuoi …
Va bene, io proprio non capisco.

OriginaleL’autore kite | 2011-03-06

4 Replies
  1. 6

    Lo scopo di WCF è quello di salvare gli sviluppatori a scrivere codice per i diversi protocolli di trasporto e dispone di un vasto numero di funzionalità, quindi è per questo che è più lento rispetto a Socket. Plus WCF è per applicazioni service-oriented. Non penso che i Giochi che rientrano in questa categoria.

    Ma come si parla solo 3-4 richieste al secondo, WCF potrebbe essere un’opzione migliore in quanto è molto flessibile e farà risparmiare un sacco di tempo di sviluppo.

    Alcuni punti:

    Le associazioni che iniziano con net* sono destinati ad essere utilizzati tra .NET applications. (Sia client che server WCF)

    Se uno qualsiasi di non WCF: È possibile utilizzare solo le associazioni che non inizia con un netto prefisso. BasicHttpBinding, WSHttpBinding etc. Questi sono molto più lento rispetto al net* associazioni come sacco di overhead c’è.

    Si può andare avanti con NetPeerTcpBinding e giocare con lui per un po’. Supporta anche la comunicazione duplex.

    Ecco alcuni link utili per il P2P:

    Peer-to-Peer di Programmazione e WCF .NET Framework 3.5

    http://blogs.interknowlogy.com/2009/08/05/building-a-really-simple-wcf-p2p-application

    OriginaleL’autore Aseem Gautam

  2. 11

    Se si desidera ottimizzare le prestazioni socket è il modo di andare, WCF dispone sia dei dati e di elaborazione. Ma… se le prestazioni sono di importanza critica per voi, si dovrebbe anche considerare l’assembler invece di c#.

    WCF dovrà gestire 3-4 richieste al secondo, senza un battito di ciglia.

    Vorrei iniziare con WCF, vi farà risparmiare un sacco di tempo di sviluppo, non c’è bisogno di rotolare il vostro proprio parser etc. È possibile concentrarsi su altre parti del gioco, al contrario. Se risulta effettivamente che il nostro WCF è troppo lento per il gioco si può buttare WCF e andare per socket invece.

    OriginaleL’autore Albin Sunnanbo

  3. 2

    Sia per la tecnologia che può gestire il numero di richieste al secondo, che si menziona, tuttavia il modello di programmazione è molto diverso. Le prese sono di livello molto basso e costruire il proprio protocollo di comunicazione su di esso. Tuttavia, il costo può essere minima. WCF è modellato dopo RPC (Remote Procedure Calls) e fornisce un’astrazione sul trasporto. Esso consente di utilizzare la stessa API con diverse tecnologie come il web o servizi di messaggistica. Tuttavia, l’astrazione fornito con una propria serie di problemi, quali una certa complessità o curva di apprendimento ripida…

    Nel tuo caso, si potrebbe anche guardare alle tecnologie di messaggistica come MSMQ, ZeroMQ o ActiveMQ che garantiscono una bella astrazione tramite socket e semplificare lo sviluppo di un sacco.

    OriginaleL’autore Julien

  4. 1

    Se non hai bisogno di prestazioni in tempo reale (Si utilizza C#, quindi credo sia questo il caso), allora vorrei suggerire di WCF.

    WCF saranno molto più facile OOP stile di strumenti per la scrittura Server-Client protocollo.

    Il vantaggio con WCF è che, nel lungo periodo, i protocolli e il codice che hai eventualmente scrivere è molto più facile da mantenere e seguire.

    Sarà più facile per aggiungere e modificare le caratteristiche del protocollo se si desidera aggiungere nulla.

    WCF è altamente personalizzabile, in modo da è meglio leggere i diversi tipi di dati-metodi di invio, che fornisce, e i modi per sovraccarico.

    È possibile utilizzare diversi tipi di associazione per ottimizzare il trasferimento dei dati:

    L’Associazione WCF In Profondità

    C# può essere utilizzato per la scrittura di applicazioni in tempo reale (suppongo che dipende anche cosa si intende per tempo reale però).
    TImmer voglio una comunicazione tra WMS e WCS che sarebbe tempo reale come ms 250. quale sarà preferibile WCF o Presa
    Vorrei scegliere WCF. la latenza è inferiore a 1 ms, se configurato a destra (Test su una macchina locale, il resto è Netowrking overhead. Il sovraccarico di rete c’è, non importa cosa applicazione in uso.).
    Grazie per la vostra risposta rapida. Sì, ha senso. Mi potete dire alcuni reali benefici di WCF su Socket, perché mai dove ho trovato persone stanno dicendo che il Socket è meglio di WCF.
    Scalabilità e facilità di gestione. Se si sta pianificando un progetto di grandi dimensioni dove si possono avere più livelli e configurazioni, si sarebbe probabilmente utilizzare WCF. Non c’è bisogno di reinventare la ruota ad ogni bit che si desidera inviare in rete. WCF ti dà un bello strato di astrazione. Le prese sono probabilmente più efficiente di WCF. Ma solo se scritti in modo corretto, e quindi si hanno anni di debug per reinventare il tuo livello di comunicazione. Anche puro Assembly e C sarebbe più efficiente rispetto a C#, se l’efficienza è che cosa siete dopo.

    OriginaleL’autore Yochai Timmer

Lascia un commento