Class: Eddn::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/eddn/client.rb,
lib/eddn/client/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Instance Method Summary collapse

Constructor Details

#initialize(url = "tcp://eddn-relay.elite-markets.net:9500", opts = {}) ⇒ Client

Returns a new instance of Client.



8
9
10
11
# File 'lib/eddn/client.rb', line 8

def initialize url="tcp://eddn-relay.elite-markets.net:9500", opts={}
  @url = url
  @opts = opts
end

Instance Method Details

#connectObject



12
13
14
15
16
17
18
19
# File 'lib/eddn/client.rb', line 12

def connect
  @subscriber = context.socket ZMQ::SUB
  @subscriber.connect(@url)
  @subscriber.setsockopt(ZMQ::SUBSCRIBE, "")

  @poller = ZMQ::Poller.new
  @poller.register(@subscriber, ZMQ::POLLIN)
end

#pollObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/eddn/client.rb', line 26

def poll
  p = @poller.poll
  if p
    @subscriber.recv_string(msec ='')
    inflate = Zlib::Inflate.new
    return JSON.parse(Zlib::Inflate.inflate(msec))
  else
    return nil
  end
end

#poll_blockingObject



22
23
24
25
# File 'lib/eddn/client.rb', line 22

def poll_blocking
  while (data = poll).nil?; sleep 0.001; end
  return data
end