asp.net - tutorial - .NET 4.5 WebSockets vs SignalR
signalr tutorial (3)
Me pregunto si la función de WebSocket en realidad hace lo mismo que SignalR y vuelve al sondeo largo cuando WebSockets no está disponible.
WebSockets es un nuevo protocolo independiente de otras técnicas de comunicación. De la RFC
El objetivo de esta tecnología es proporcionar un mecanismo para las aplicaciones basadas en navegador que necesitan comunicación bidireccional con servidores que no dependen de la apertura de múltiples conexiones HTTP ( por ejemplo, utilizando XMLHttpRequest y s) y sondeo largo
¿Seguramente Microsoft implementaría la misma tecnología que SignalR en su enfoque de esta tecnología?
No si quieren ajustarse a la especificación no lo harán. Ciertamente, no hay nada que impida que Microsoft desarrolle una API de nivel superior similar a SignalR que abstraería los detalles de la comunicación y ofreciera un respaldo elegante. Sin embargo, esa API hipotética probablemente se construirá sobre la clase WebSocket en lugar de reemplazarla.
He visto signalR vs html5 websockets para la aplicación de chat MVC de asp.net pero no responde al 100% a mi pregunta, ya que se basa en HTML5 WebSockets, que Microsoft podría haber extendido en .NET 4.5 con su objeto WebSocket.
Me pregunto si la función de WebSocket en realidad hace lo mismo que SignalR y vuelve al sondeo largo cuando WebSockets no está disponible. ¿Seguramente Microsoft implementaría la misma tecnología que SignalR en su enfoque de esta tecnología?
Editar:
Para cualquier persona que se pregunte sobre esto, este comentario me pareció lo más útil para comprender el escenario y por qué usaré SignalR:
Bueno, en realidad no lo son. Hasta ahora, IIS y ASP.NET no tenían nada integrado en WebSockets compatibles, por lo que el proyecto SignalR debía construirlo ellos mismos. Ahora que Microsoft proporciona la señalización, SignalR podría cambiar fácilmente al uso de la implementación de Microsoft, ya sea en adición o en lugar de la suya propia. SignalR es una abstracción sobre los detalles de implementación, la clase WebScockets es el detalle de implementación
Creo que SignalR es el camino a seguir, y de todos modos va a ser parte de .NET (y es probable que amplíe / fusione / reemplace el soporte de sockets web). Utiliza sockets web cuando es compatible, y trucos de sondeo de clientes consistentes cuando no lo es, por lo tanto, es el camino a seguir.
Actualizar:
Como esta respuesta todavía se está votando, vale la pena mencionar que SignalR ahora es oficialmente parte de ASP.NET.
Compruebe asp.net/signalr
Actualización: .NET Core
SignalR también se está agregando a .NET Core como @yazanpro señaló en los comentarios.
Está disponible en .NET Core 2.1 y también tiene documentación oficial .
SignalR usa OWIN, que usará la conexión de WebSockets si el navegador admite sockets web y un sondeo largo si el navegador no admite WebSockets.