Guest User

Untitled

a guest
Jul 15th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'rubygems'
  4. require 'eventmachine'
  5.  
  6. class Echo < EM::Connection
  7. attr_reader :queue
  8.  
  9. def initialize(q)
  10. @queue = q
  11.  
  12. cb = Proc.new do |msg|
  13. send_data(msg)
  14. q.pop &cb
  15. end
  16.  
  17. q.pop &cb
  18. end
  19.  
  20. def post_init
  21. send_data("Hello")
  22. end
  23.  
  24. def receive_data(data)
  25. p data
  26. end
  27. end
  28.  
  29. class KeyboardHandler < EM::Connection
  30. include EM::Protocols::LineText2
  31.  
  32. attr_reader :queue
  33.  
  34. def initialize(q)
  35. @queue = q
  36. end
  37.  
  38. def receive_line(data)
  39. @queue.push(data)
  40. end
  41. end
  42.  
  43. EM.run {
  44. q = EM::Queue.new
  45.  
  46. EM.connect('127.0.0.1', 8081, Echo, q)
  47. EM.open_keyboard(KeyboardHandler, q)
  48. }
Add Comment
Please, Sign In to add comment