Advertisement
Guest User

Untitled

a guest
May 20th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. require 'rubygems'
  2. require 'eventmachine'
  3. require 'evma_httpserver'
  4.  
  5. class HttpHandler < EM::Connection
  6. include EM::HttpServer
  7.  
  8. @@listeners = []
  9.  
  10. def process_http_request
  11. resp = EM::DelegatedHttpResponse.new(self)
  12.  
  13. case @http_path_info
  14.  
  15. when '/observe'
  16. @@listeners.push(resp)
  17. puts "Observed (#{@@listeners.length} total)"
  18.  
  19. when '/notify'
  20. @@listeners.each_with_index do |listener, i|
  21. puts "Notified #{i}"
  22. listener.status = 200
  23. listener.content = "Hello World #{i}!"
  24. listener.send_response
  25. end
  26. @@listeners = []
  27. resp.status = 200
  28. resp.content = "Success!"
  29. resp.send_response
  30.  
  31. else
  32. resp.status = 200
  33. resp.content = "Received #{resp.inspect}!"
  34. resp.send_response
  35. end
  36. end
  37. end
  38.  
  39. EM.run do
  40. EM.start_server "0.0.0.0", 6000, HttpHandler
  41. puts 'listening...'
  42. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement