Sto provando a utilizzare WCF per implementare un push server di stile comet su un'applicazione web ajax.Cometa e fili WCF
Nel mio servizio WCF, ho implementato un metodo WaitForEvents che chiama Monitor.Wait per sospendere il thread fino all'arrivo di nuovi dati. A quel punto, il monitor è a impulsi e il metodo restituisce i nuovi dati che chiudono la richiesta di stile della cometa.
La richiesta viene eseguita nuovamente quando ciò accade.
Attualmente, questo funziona correttamente ma ho notato che WCF deve creare un nuovo thread per ciascun utente connesso. Ciò è probabilmente dovuto al fatto che il thread non può essere restituito al pool di thread finché i dati non arrivano e quindi ogni utente connesso richiede un nuovo thread.
Voglio rendere questa implementazione più efficiente avendo un servizio thread più connessioni multiple. Se dovessi usare un socket, questo potrebbe essere fatto lasciando il socket aperto e restituendo il thread al pool di thread prima. Quando arrivano nuovi dati, sarà consegnato da un altro thread e possiamo scrivere i nuovi dati direttamente nel socket e chiuderlo.
Qualcuno sa come questo può essere fatto tramite WCF?
Sono stato a guardare "Push-Style Streaming" http://msdn.microsoft.com/en-us/library/bb472551.aspx e menzionano che "WCF implementa un modello" pull "in cui il codice dell'applicazione (il servizio) restituisce un'istanza di Stream e fa affidamento sull'infrastruttura di livello inferiore per estrarre i dati da questo stream e scriverli sulla rete. " ma non trovo alcun esempio di questo il sito web.
Molte grazie in anticipo!