2011-05-10 14 views

Respuesta

-2

No creo que haya ningún marco de .NET que tiene apoyo de OI evented como Node.js o EventMachine de Ruby o Python retorció :-(.

+3

@kazimanzurrashid: Van Codificación estaba pidiendo un equivalente a Socket.IO, no Node.js. .. – billy

8

.NET tiene un número de maneras de implementar un 100% diseño asíncrono similar a Node.js. 'BeginSend/EndSend y de mayor rendimiento SendAsync, o Stream s' s BeginRead/BeginWrite métodos

Ver Socket. Estos son todos muy similares a Node.js.

C# 5.0 está trayendo un nuevo diseño asíncrono con soporte de idiomas que será mucho más fácil de usar que los anteriores. Puedes jugar con una versión beta en el Async CTP.

+0

Los delegados y el nuevo C# Async no son lo mismo que el framework que mencioné.Esos marcos usan un único hilo que no bloquea, por otro lado, en .NET cada cliente es manejado por un hilo separado y esta es la diferencia fundamental. – kazimanzurrashid

+1

Vaya, olvidé que node.js usa un solo hilo. Sin embargo, .NET no maneja cada cliente en un hilo separado: usa un grupo de hilos y nunca bloquea. Si bloquea al acceder al estado global, debería estar bien. Además, C# Async CTP utiliza cualquier contexto de ejecución en el que inicie la E/S: si su contexto es de subproceso único, solo usará esa única cadena para todas sus conexiones. –

0

¡Esto acaba de ser lanzado, la documentación y los ejemplos están en camino!

https://github.com/kayak/kayak https://groups.google.com/forum/#!topic/kayak-http/LXS_xh0qurM

También es posible que desee comprobar hacia fuera http://superwebsocket.codeplex.com/

No estoy seguro de si sin embargo, utiliza un solo hilo o grupo de hilos. Pero eso solo será un problema una vez que desee tener miles de conexiones al mismo tiempo.

4

Acabo de ver un video de mix11, donde hablaron sobre Manos de Mono. Es un marco de C# modelado a partir de tornadoweb con inspiración de frameworks como node.js.

https://github.com/jacksonh/manos

29

SignalR

biblioteca señalización asíncrono para .NET para ayudar a construir en tiempo real, multi-usuario de las aplicaciones web interactivas.

https://github.com/SignalR/SignalR

Se puede ver un ejemplo vivo de la misma en juego aquí http://jabbr.net/

Tendrá IIS 8.0 para obtener tomas web, utiliza largo de votación en IIS 7.

pienso pueden estar trabajando en usar https://github.com/davidfowl/Fleck y https://github.com/davidfowl/SignalR.Fleck para mostrar cómo se puede usar el servidor de socket web Fleck con SignalR