2009-11-14 9 views
6

Vorrei sapere se esiste un modo per scrivere un server comet in C#. Ho un codice C# che genera dati periodicamente, e voglio spingere questi dati su un'app java. Quindi vorrei convertire il mio codice C# in un server comet. Inoltre vorrebbe sapere se c'è un server comet implementato che ci permetta di connettere l'applicazione C# e l'applicazione java ad esso, in modo che l'applicazione C# possa passare informazioni all'app java, attraverso il server comet. la frequenza di push dei dati sarebbe alta, ma la dimensione di un singolo messaggio è molto piccola: un valore di stringa.Implementare un server Comet in C#

+0

Questo è un lavoro di ricerca individuale, quindi non può permettersi alcun prodotto commerciale. Il prodotto commerciale 'stream hub' ha una buona implementazione di un server comet, ma le funzionalità richieste non sono disponibili nella loro edizione gratuita. – sura

risposta

5

Facciamolo capire.

Sto assumendo questo è un follow-up a questa domanda: communication between Java and C#

Si tratta di app per la comunicazione applicazione sulla stessa macchina con solo le stringhe come il carico utile, giusto?

Perché COMET? Perché non inviare semplicemente stringhe con terminazione nulla direttamente tramite una connessione socket? L'implementazione di un server Comet è tutt'altro che banale e viene utilizzata solo in situazioni in cui non è consentita una comunicazione diretta (ad esempio, dal server al browser push). La cometa per la comunicazione tra app e app sulla stessa macchina sarebbe molto complessa per una soluzione facilmente risolvibile con socket.

3

Si può sicuramente fare, ma scrivere un server comet in C# è un compito abbastanza complesso. Ne abbiamo creato uno (WebSync), e ci sono voluti alcuni sforzi. Se stai solo facendo un progetto di ricerca, puoi utilizzare la versione OnDemand, che è ospitata, e ha 10 utenti gratuiti. In questo momento, la versione Server non è gratuita, ma è piuttosto economica ...

Per quello che vale, se decidi di eseguire il rollover, guarderai IHttpAsyncHandler e tu ". Dovrò fare un po 'di gestione dei thread per gestire i limiti del threadpool predefinito in IIS.

+1

Se qualcuno lo legge, questo è un prodotto molto bello. Guardaci dentro. Non te ne pentirai. – Dested

+0

È possibile utilizzare l'SDK On-Demand di WebSync per consumare un server Comet come quello superfeedr? http://blog.superfeedr.com/websockets-and-comet/ – superlogical

+0

Sembra che abbiano avuto la loro implementazione sotto il cofano, quindi non avresti bisogno di WSOD per consumarlo. WSOD potrebbe essere usato in congiunzione con esso, certamente, ma stanno costruendo la propria implementazione, usando il proprio protocollo; si noti che menzionano che non esiste un protocollo definito ... non è del tutto vero, in quanto le specifiche di Bayeux sono certamente disponibili. (Http://svn.cometd.com/trunk/bayeux/bayeux.html). In quanto tali, dovranno avere anche il loro SDK. – jvenema

2

Potrebbe essere necessario un codice sorgente di esempio per l'implementazione? PokeIn La libreria inversa ajax era un progetto open source e i codici sorgente per le versioni precedenti sono ancora scaricabili dal sito codeplex.

Ovviamente, l'ultima versione della libreria PokeIn è una delle più grandi librerie per .Net framework e si può usare la loro edizione gratuita della community.