Your SlideShare is downloading. ×
  • Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Ruby EventMachine + em-WebSocket

  • 3,180 views
Published

Presentación de la charla "Ruby EventMachine + em-WebSocket", la cual fue expuesta en la reunión inaugural del Grupos de Usuarios Ruby de Venezuela - http://ruby.org.ve

Presentación de la charla "Ruby EventMachine + em-WebSocket", la cual fue expuesta en la reunión inaugural del Grupos de Usuarios Ruby de Venezuela - http://ruby.org.ve

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,180
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
31
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ruby EventMachineY un pequeño ejemplo usando em-websockets @CarlosForero
  • 2. Concurrencia
  • 3. Concurrencia usando hilos (Threads)
  • 4. Concurrencia usando hilos (Threads) Cada uno tiene su propio Stack Uso de semáforos de sistema operativo Baja el desempeño cuando aumenta el número de conexiones
  • 5. Concurrencia usando el Patrón Reactor (Reactor Pattern)
  • 6. Reactor Pattern vs Multithreading ApacheEvent Driven Based Server Thread Based Server
  • 7. Reactor Pattern vs Multithreading
  • 8. Reactor Pattern vs Multithreading
  • 9. Concurrencia usando el Patrón Reactor (Reactor Pattern)
  • 10. Reactor Pattern
  • 11. Ruby EventMachinerequire eventmachineEM.run do EM.add_timer(5) do puts "Extremadamente simple... adios!" EM.stop endend
  • 12. Ruby EventMachinerequire eventmachineEM.run do EM.add_timer(7) do puts "Listo" EM.stop_event_loop end EM.add_periodic_timer(1) do puts "Esperando ... " endend
  • 13. EventMachine::Connection
  • 14. EventMachine::Connectionrequire eventmachineclass EchoHandler < EM::Connection def receive_data(data) send_data(data) endendEM.run do EM.start_server("127.0.0.1", 10000, EchoHandler)end
  • 15. EventMachine::Connection Events post_init connection_completed receive_data(data) unbind Methods close_connectionclose_connection_after_writing
  • 16. Un solo hilo para el reactor
  • 17. EM#deferrequire eventmachinerequire threadEM.run do EM.add_timer(1) do puts "Ejecución de hilo principal => #{Thread.current}" EM.stop_event_loop end EM.defer do puts "Ejecución en segundo hilo => #{Thread.current}" endend
  • 18. EM#defer
  • 19. EM#defer con Callbackrequire eventmachineEM.run do operation = proc do 5 + 5 end callback = proc do |count| puts "5 + 5 == #{count}" EM.stop end EM.defer(operation, callback)end
  • 20. EM#defer con Callback
  • 21. EM#defer con Callback Un ejemplo más práctico con...gem install eventmachine_httpserver
  • 22. Ahora si...gem install em-websockets
  • 23. Pero antes un repaso...
  • 24. Arquitectura HTTP
  • 25. Ajax (Pull)
  • 26. Comet (Push)
  • 27. HTML 5 WebSockets
  • 28. HTML 5 WebSockets
  • 29. WebSockets Events
  • 30. Chat Server con em-websockets :-)
  • 31. Esta presentación se hizo conSi la quieres hazme followy solicítamela... @CarlosForeroGracias por su atención