AjaxReverse (Comet) Aplicaciones en tiempo real … un paso mas allá de Ajax(ejemplos con ASP.NET MVC)                      ...
Comet… WebSocketsHasta el infinito y mas allá… un paso mas allá de Ajax
Ajax• XMLHttpRequest  – http://www.w3.org/TR/XMLHttpRequest/• API implementada en los motores de script• “Es el Mago en Aj...
Tiempo real (en web)• Tener información “fresca”. Lo mas pronto posible• HTTP basado en peticiones   – Request-Response   ...
Obtener datos en tiempo real• Polling/Sondeo  – Solicitar información “constantemente”• Push/”Colocar”  – Recibir informac...
Como lo hacemos?•   Flash (sockets – XMLSocket/Socket – AS3)•   Silverlight (con servicios duplex)•   Comet…•   WebSockets...
Comet?• “MKT”• Otros nombres  – Reverse Ajax,  – Ajax Push,  – HTTP Push,  – HTTP Server Push  – HTTP Streaming  – two-way...
• Demo cajeros
PrevenirIntervalo
Polling vs Pulling
AsyncController              (nuevo en ASP.NET MVC)• Sin    – Controlador sincrónico. “Espere por favor…”    – Thread debe...
Streaming & Long-Polling.• Dos opciones
multipart/x-mixed-replace• comet = cometobj();• comet.multipart = true;
Dojo.js• http://dojofoundation.org/projects/cometd
… un poco de magia“elegante”• http://code.google.com/p/jquery-websocket/• The Graceful WebSocket• http://code.google.com/p...
WebSocket (HTML)• Protocolo de comunicación full-duplex• Para ser utilizado en los navegadores (y servidores)   – Que sea ...
• Pokerin: Comet Ajax Library for ASP.NET & Mono  http://pokein.com/  http://pokein.codeplex.com/
• Enlaces  – Prototipo de WebSocket para IIS 7 (WCF)  – SuperWebSocket: http://superwebsocket.codeplex.com/  – pywebsocket...
HTTP Upgrade Request    Cliente                                             Servidor1    HTTP                             ...
1         GET /ejemplo HTTP/1.1          Host: juti-frre.com.ar          Upgrade: websocketCliente   Connection: Upgrade H...
Conclusiones…• “No es para cualquier requerimiento y ámbito”.• Entornos de LAN (Intranet)• Polling  - Alto trafico en la r...
Preguntas??                                     Ing. Jose A. Fernandez                         jfernandez{arroba}desarroll...
Upcoming SlideShare
Loading in …5
×

Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011

1,072 views

Published on

Que es Ajax reverse (Comet)? alternativas para desarrollo web en tiempo real

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,072
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ajax reverse (Comet) con ASP.NET MVC - JUTI 2011

  1. 1. AjaxReverse (Comet) Aplicaciones en tiempo real … un paso mas allá de Ajax(ejemplos con ASP.NET MVC) Ing. Jose A. Fernandez jfernandez{arroba}desarrollosnea{punto}com JUTI – UTN FRRe Agosto.2011 blog: http://team.desarrollosnea.com.ar/blogs/jfernandez blog personal: http://geeks.ms/blogs/fernandezja @fernandezja
  2. 2. Comet… WebSocketsHasta el infinito y mas allá… un paso mas allá de Ajax
  3. 3. Ajax• XMLHttpRequest – http://www.w3.org/TR/XMLHttpRequest/• API implementada en los motores de script• “Es el Mago en Ajax”, … – ya que establece un canal de comunicación browser-server en background
  4. 4. Tiempo real (en web)• Tener información “fresca”. Lo mas pronto posible• HTTP basado en peticiones – Request-Response – No es suficiente para el requerimiento – Debemos solicitar información “constantemente” Ejemplos: – Aplicaciones de colaboracion – Dashboards/Cuadros de mandos – Chat/Juegos – Algun progreso de una tarea… – etc.
  5. 5. Obtener datos en tiempo real• Polling/Sondeo – Solicitar información “constantemente”• Push/”Colocar” – Recibir información (alguien lo tiene y lo puedo recibir)• Pulling/Extraer – Solicitar información. Cuando sea necesaria
  6. 6. Como lo hacemos?• Flash (sockets – XMLSocket/Socket – AS3)• Silverlight (con servicios duplex)• Comet…• WebSockets (HTML5)
  7. 7. Comet?• “MKT”• Otros nombres – Reverse Ajax, – Ajax Push, – HTTP Push, – HTTP Server Push – HTTP Streaming – two-way-web,
  8. 8. • Demo cajeros
  9. 9. PrevenirIntervalo
  10. 10. Polling vs Pulling
  11. 11. AsyncController (nuevo en ASP.NET MVC)• Sin – Controlador sincrónico. “Espere por favor…” – Thread debe esperar a que termine • No puede responder otras peticiones • Limite de hilos• ConEnlaces – MSDN: AsyncController – Code Samples: ASP.NET MVC Asynchronous and Areas
  12. 12. Streaming & Long-Polling.• Dos opciones
  13. 13. multipart/x-mixed-replace• comet = cometobj();• comet.multipart = true;
  14. 14. Dojo.js• http://dojofoundation.org/projects/cometd
  15. 15. … un poco de magia“elegante”• http://code.google.com/p/jquery-websocket/• The Graceful WebSocket• http://code.google.com/p/jquery-graceful- websocket/• http://kaazing.com/ lo hace funcionar al IE6 ;)• Emular con flash https://github.com/gimite/web- socket-js
  16. 16. WebSocket (HTML)• Protocolo de comunicación full-duplex• Para ser utilizado en los navegadores (y servidores) – Que sea fácil de utilizar• Estandarización – W3C Web Applications Working Group – IETF Hypertext Bidirectional (HyBi) Working Group.• Fuente http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)
  17. 17. • Pokerin: Comet Ajax Library for ASP.NET & Mono http://pokein.com/ http://pokein.codeplex.com/
  18. 18. • Enlaces – Prototipo de WebSocket para IIS 7 (WCF) – SuperWebSocket: http://superwebsocket.codeplex.com/ – pywebsocket: Componente para Apache
  19. 19. HTTP Upgrade Request Cliente Servidor1 HTTP HTTP TCP Cliente Servidor2 HTTP HTTP TCP HTTP Switching Protocols Response Web Web3 Socket Socket TCP Intercambio de mensajes
  20. 20. 1 GET /ejemplo HTTP/1.1 Host: juti-frre.com.ar Upgrade: websocketCliente Connection: Upgrade HTTP Sec-WebSocket-Key: {clave/encriptada/base64} Sec-WebSocket-Origin: http://juti-frre.com.ar Sec-WebSocket-Version: 6 1 HTTP/1.1 101 Switching Protocols Upgrade: websocketCliente Connection: Upgrade HTTP Sec-WebSocket-Accept: {respuesta en base a clave/encriptada/base64}
  21. 21. Conclusiones…• “No es para cualquier requerimiento y ámbito”.• Entornos de LAN (Intranet)• Polling - Alto trafico en la red - Mensajes “innecesarios” (sin cambios) +/ - Intervalo de sondeo • Dependiendo del “%-intervalo” de actualización • Puede ser bajo y quedarnos sin recibir actualización + Se puede modificar el intervalo desde el servidor en alguna actualización (IA/Estadisticas)
  22. 22. Preguntas?? Ing. Jose A. Fernandez jfernandez{arroba}desarrollosnea{punto}com JUTI – UTN FRRe Agosto.2011blog: http://team.desarrollosnea.com.ar/blogs/jfernandez blog personal: http://geeks.ms/blogs/fernandezja @fernandezja

×