class KeyServer
Constants
- READSIZE
Public Class Methods
new(port, callback)
click to toggle source
# File lib/server/key_server.rb, line 9 def initialize port, callback @port = port @callback = callback end
Public Instance Methods
disconnected(socket)
click to toggle source
# File lib/server/key_server.rb, line 39 def disconnected(socket) socket_info = Socket.unpack_sockaddr_in(socket.local_address) puts "A key client disconnected: #{socket_info}" return false end
listen()
click to toggle source
screen_server.listen
# File lib/server/key_server.rb, line 15 def listen Thread.new do Socket.tcp_server_loop @port, ®ister end end
register()
click to toggle source
# File lib/server/key_server.rb, line 21 def register ->(socket, client_info) { socket.sync = true Thread.new do loop { key_data = read_key(socket) or break @callback.( key_data ) } end } end
Private Instance Methods
read_key(socket)
click to toggle source
# File lib/server/key_server.rb, line 33 def read_key(socket) return socket.readpartial( READSIZE ) rescue EOFError; disconnected(socket) end