2010-06-10 8 views
16

So che è possibile utilizzare WebSockets all'interno di C# utilizzando un'applicazione console che si trova di fianco all'applicazione Web, ma mi chiedo se è possibile utilizzare le richieste sull'applicazione Web C# per creare i WebSockets.Utilizzo di WebSockets in un'applicazione Web C#?

Ho cercato ASP.Net e Im cominciando a pensare che non sarebbe possibile a meno che non utilizzi direttamente C# e creo il mio server HTTP e quindi utilizzi lo stesso oggetto socket per generare Web Sockets (simile al modo Node.js e Socket.IO funzionano).

Qualche idea su come includere WebSockets in un'applicazione Web C# senza avere più server/progetti?

+0

È possibile fornire un collegamento a come utilizzare WebSockets con un'applicazione di console? Non pensavo affatto che i websocket supportati da .NET. –

+0

Ho trovato un paio: http://nugget.codeplex.com/ http://www.extjs.com/forum/showthread.php?99842-WebSocket-server-in-C http: // www .codeproject.com/KB/webservices/c_sharp_web_socket_server.aspx Tutti funzionano con Mono o .Net. – sixones

+0

@John Saunders, non tutto ciò che deve essere fatto è scritto nel BCL .NET. Alcune cose devono essere implementate in aggiunta a ciò che .NET già fornisce. –

risposta

11

È possibile ospitare un server WebSockets nel contesto di un ASP.NET. Tuttavia, è necessario essere consapevoli che è possibile riavviare l'applicazione ASP.NET, il che significa che il server verrà arrestato e dovrà essere ristabilito insieme all'applicazione ASP.NET.

L'hosting dell'applicazione WebSockets all'interno di un servizio Windows separato fornirebbe maggiore affidabilità nel server socket, ma richiederà quindi a IPC di condividere i dati tra l'applicazione ASP.NET e il servizio Windows.

Quindi, c'è un compromesso da discutere. Dipende da quanto è sensibile il codice cliente alla perdita e al ristabilimento della connessione. Se questo viene gestito a sufficienza, l'hosting all'interno di ASP.NET andrà bene.

Si noti che mentre i WebSocket sono nuovi per HTML, il concetto esiste da molti anni con le app Flash e Java. Soprattutto con Flash è comunemente usato per i giochi online e le chat basate sul web.

+0

Grazie, ho pensato che sarebbe stato il caso, stavo pensando che il trade-off avrebbe usato un progetto di applicazione web in ASP.Net, un server WebSocket in C# e una libreria C# (contenente tutti i modelli) a cui ogni progetto server ha accesso a. Il progetto su cui sto lavorando non ha realmente bisogno di condividere i dati tra i 2 progetti del server poiché i 2 protocolli gestiscono percorsi di dati diversi. Comunque contenere tutto in 1 progetto sarebbe molto più bello! Avete collegamenti ad esempi o qualcosa sull'utilizzo di WebSockets in ASP.Net? – sixones

+1

@sixones, non c'è davvero alcuna differenza nell'implementazione reale quando è ospitata in ASP.NET anziché in un servizio Windows. Basta inizializzarlo all'evento di inizializzazione dell'applicazione invece della chiamata di servizio 'OnStart'. –

3

PokeIn 2.0 ha costruito in funzione WebSocket e non richiede alcuna speciale ambiente di lavoro. Dettagli disponibili da here