SlideShare una empresa de Scribd logo
1 de 26
NET-BAIRES
http://net-baires.com.ar http://slack.net-baires.com.ar/
@NetBaires
Datos en Tiempo Real
usando
Sobre
Esteban Yañez
Full Stack Developer en tecnologías
Microsoft en Lagash
Xamarin developer.
Twitter: @Teban3010
Slack Net-Baires: @teban
Apasionado por la tecnología.
Agenda
DATOS EN TIEMPO REAL USANDO SIGNAL R
01 | Introducción
02 | SignalR en la Web
03 | SignalR en el Cliente
04 | Escalando SignalR
01 | Introducción a SignalR
¿Qué es SignalR?
SignalR es una serie de abstracciones alrededor de varios
métodos que proven conexiones HTTP persistentes distribuidas
como código open-source.
[¿Me lo podes decir en castellano?]
SignalR hace tan fácil trabajar HTTP en Tiempo Real que parece
magia.
Conceptos
Representa un endpoint
para enviar mensajes a un
usuario único, un grupo de
usuarios o distribuidos.
Connection
Un pipeline de alto nivel
construido sobre el
Connection API que le
permiten al cliente y al
servidor comunicarse
directamente entre ellos.
Hub
Backplane permite escalar tu
aplicación en múltiples
servidores. Con backplane
habilitado, cada instancia de
la aplicación le envía un
mensaje a este, y este lo
redirecciona a las otras
instancias de la aplicación.
Backplane
DEMO
http://bit.ly/SignalR-Demo
¿Cómo
funciona?
SignalR en Servidores o Clientes Viejos
¡¡Acá tenés datos!!
SignalR en Servidores o Clientes Modernos
¡Si!
Entonces, ¿Como sabe SignalR que
metodología utilizar en ambos lados
de la conexión persistente HTTP?
SignalR Fallback
Long
Polling
Forever
Frames
Server
Sent
Events
Web
Sockets
Selección del Modo de Transporte
1. Si el browser es IE8 o menor, usa Long Pooling.
2. Si esta configurado JSONP (esto es, el parámetro de JSONP esta seteado en true cuando comienza la
conexión), usa Long Pooling.
3. Si se hace una conexión cross-domain (esto es, si el endpoint de SignalR no esta en el mismo dominio que el
host) entonces usa WebSocket si se cumple el siguiente criterio:
 El cliente soporta CORS (Cross-Origin Resource Sharing).
 El cliente soporta WebSocket.
 El servidor soporta WebSocket.
 Si alguno de estos criterios no se cumple, se usa Long Poling.
4. Si no esta configurado JSONP y la conexión no es cross-domain, se utiliza WebSocket si ambos, el cliente y el
servidor, lo soportan.
5. Si el cliente o el servidor no soportan WebSocket, se usa Server Sent Events si esta disponible.
6. Si no esta disponible Server Sent Events, se usa Forever Frame.
7. Si Forever Frame falla, se usa Long Pooling.
Connections y Hubs
Connections (low-level)
 El API Persistent Connection (que en código .NET se encuentra con la clase
PersistentConnection) da acceso directo al protocolo de comunicación que expone
SignalR a bajo nivel.
Hubs (high-level)
 La API Hub esta construida por encima de la API Persistant Connection, y permite que el
cliente y el servidor se comuniquen directamente.
Arquitectura
02 | SignalR en la Web
DEMO
03 | SignalR en el Cliente
DEMO
04 | Escalando SignalR
SignalR Backplanes
¿Cómo utilizo SignalR en una Web distribuida?
Escalando SignalR con Backplanes
Backplane
¿Cómo elijo el tipo de BackPlane?
¿Está hosteado
en Azure?
Y N
¿Usas Redis
Cache?
¿Usas Redis
Cache?
Usa Azure Service
Bus
Usa Redis Usa SQL ServerY Y
NN
DEMO
PREGUNTAS
MUCHAS GRACIAS

Más contenido relacionado

Similar a Datos en tiempo real con SignalR

Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formalsaytubb
 
13 servidor http
13 servidor http13 servidor http
13 servidor httpIsaacVk
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)Vivi Marquez
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)Vivi Marquez
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...Héctor Curbelo Barrios
 
Mapa Conceptual Servidores web
Mapa Conceptual Servidores webMapa Conceptual Servidores web
Mapa Conceptual Servidores webArturo_09
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpvictdiazm
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamicoJose Luis Crespo
 
Ecosistema laravel
Ecosistema laravelEcosistema laravel
Ecosistema laravelPeter
 

Similar a Datos en tiempo real con SignalR (20)

Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formal
 
Ugmmontoya
UgmmontoyaUgmmontoya
Ugmmontoya
 
13 servidor http
13 servidor http13 servidor http
13 servidor http
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Servicios web ITT
Servicios web ITTServicios web ITT
Servicios web ITT
 
Servicios web itt
Servicios web ittServicios web itt
Servicios web itt
 
Servicios web itt
Servicios web ittServicios web itt
Servicios web itt
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Pdfwebservices
PdfwebservicesPdfwebservices
Pdfwebservices
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWO...
 
Apli t1 ejr
Apli t1 ejrApli t1 ejr
Apli t1 ejr
 
Mapa Conceptual Servidores web
Mapa Conceptual Servidores webMapa Conceptual Servidores web
Mapa Conceptual Servidores web
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamico
 
Ecosistema laravel
Ecosistema laravelEcosistema laravel
Ecosistema laravel
 
Rmonzon
RmonzonRmonzon
Rmonzon
 

Más de Esteban Yañez

Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Esteban Yañez
 
Introduccion Xamarin.Forms - .NET Conf CL
Introduccion Xamarin.Forms - .NET Conf CLIntroduccion Xamarin.Forms - .NET Conf CL
Introduccion Xamarin.Forms - .NET Conf CLEsteban Yañez
 
Mobile wars - .Net Conf UY 2018
Mobile wars - .Net Conf UY 2018Mobile wars - .Net Conf UY 2018
Mobile wars - .Net Conf UY 2018Esteban Yañez
 
Migrando aplicaciones legacy con vuejs
Migrando aplicaciones legacy con vuejsMigrando aplicaciones legacy con vuejs
Migrando aplicaciones legacy con vuejsEsteban Yañez
 
Introduccion xamarin forms - Net conf uy
Introduccion xamarin forms - Net conf uyIntroduccion xamarin forms - Net conf uy
Introduccion xamarin forms - Net conf uyEsteban Yañez
 

Más de Esteban Yañez (7)

Serverless containers
Serverless containersServerless containers
Serverless containers
 
Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018
 
Introduccion Xamarin.Forms - .NET Conf CL
Introduccion Xamarin.Forms - .NET Conf CLIntroduccion Xamarin.Forms - .NET Conf CL
Introduccion Xamarin.Forms - .NET Conf CL
 
Xamarin forms 3.0
Xamarin forms 3.0Xamarin forms 3.0
Xamarin forms 3.0
 
Mobile wars - .Net Conf UY 2018
Mobile wars - .Net Conf UY 2018Mobile wars - .Net Conf UY 2018
Mobile wars - .Net Conf UY 2018
 
Migrando aplicaciones legacy con vuejs
Migrando aplicaciones legacy con vuejsMigrando aplicaciones legacy con vuejs
Migrando aplicaciones legacy con vuejs
 
Introduccion xamarin forms - Net conf uy
Introduccion xamarin forms - Net conf uyIntroduccion xamarin forms - Net conf uy
Introduccion xamarin forms - Net conf uy
 

Datos en tiempo real con SignalR

  • 2. Sobre Esteban Yañez Full Stack Developer en tecnologías Microsoft en Lagash Xamarin developer. Twitter: @Teban3010 Slack Net-Baires: @teban Apasionado por la tecnología.
  • 3. Agenda DATOS EN TIEMPO REAL USANDO SIGNAL R 01 | Introducción 02 | SignalR en la Web 03 | SignalR en el Cliente 04 | Escalando SignalR
  • 4. 01 | Introducción a SignalR
  • 5. ¿Qué es SignalR? SignalR es una serie de abstracciones alrededor de varios métodos que proven conexiones HTTP persistentes distribuidas como código open-source. [¿Me lo podes decir en castellano?] SignalR hace tan fácil trabajar HTTP en Tiempo Real que parece magia.
  • 6. Conceptos Representa un endpoint para enviar mensajes a un usuario único, un grupo de usuarios o distribuidos. Connection Un pipeline de alto nivel construido sobre el Connection API que le permiten al cliente y al servidor comunicarse directamente entre ellos. Hub Backplane permite escalar tu aplicación en múltiples servidores. Con backplane habilitado, cada instancia de la aplicación le envía un mensaje a este, y este lo redirecciona a las otras instancias de la aplicación. Backplane
  • 9. SignalR en Servidores o Clientes Viejos ¡¡Acá tenés datos!!
  • 10. SignalR en Servidores o Clientes Modernos ¡Si!
  • 11. Entonces, ¿Como sabe SignalR que metodología utilizar en ambos lados de la conexión persistente HTTP?
  • 13. Selección del Modo de Transporte 1. Si el browser es IE8 o menor, usa Long Pooling. 2. Si esta configurado JSONP (esto es, el parámetro de JSONP esta seteado en true cuando comienza la conexión), usa Long Pooling. 3. Si se hace una conexión cross-domain (esto es, si el endpoint de SignalR no esta en el mismo dominio que el host) entonces usa WebSocket si se cumple el siguiente criterio:  El cliente soporta CORS (Cross-Origin Resource Sharing).  El cliente soporta WebSocket.  El servidor soporta WebSocket.  Si alguno de estos criterios no se cumple, se usa Long Poling. 4. Si no esta configurado JSONP y la conexión no es cross-domain, se utiliza WebSocket si ambos, el cliente y el servidor, lo soportan. 5. Si el cliente o el servidor no soportan WebSocket, se usa Server Sent Events si esta disponible. 6. Si no esta disponible Server Sent Events, se usa Forever Frame. 7. Si Forever Frame falla, se usa Long Pooling.
  • 14. Connections y Hubs Connections (low-level)  El API Persistent Connection (que en código .NET se encuentra con la clase PersistentConnection) da acceso directo al protocolo de comunicación que expone SignalR a bajo nivel. Hubs (high-level)  La API Hub esta construida por encima de la API Persistant Connection, y permite que el cliente y el servidor se comuniquen directamente.
  • 16. 02 | SignalR en la Web
  • 17. DEMO
  • 18. 03 | SignalR en el Cliente
  • 19. DEMO
  • 20. 04 | Escalando SignalR
  • 21. SignalR Backplanes ¿Cómo utilizo SignalR en una Web distribuida?
  • 22. Escalando SignalR con Backplanes Backplane
  • 23. ¿Cómo elijo el tipo de BackPlane? ¿Está hosteado en Azure? Y N ¿Usas Redis Cache? ¿Usas Redis Cache? Usa Azure Service Bus Usa Redis Usa SQL ServerY Y NN
  • 24. DEMO