mirror of
https://github.com/EDCD/EDDN.git
synced 2025-04-12 07:00:04 +03:00
Added Ruby client example
This commit is contained in:
parent
f03a0857cf
commit
6ea46b4603
49
examples/Ruby/client.rb
Normal file
49
examples/Ruby/client.rb
Normal file
@ -0,0 +1,49 @@
|
||||
require 'zlib'
|
||||
require 'ffi-rzmq'
|
||||
require 'json'
|
||||
require 'pry-byebug'
|
||||
|
||||
trap "SIGINT" do
|
||||
puts "Quitting"
|
||||
exit 130
|
||||
end
|
||||
|
||||
EDDN_RELAY = 'tcp://eddn.edcd.io:9500'
|
||||
EDDN_TIMEOUT = 60000
|
||||
|
||||
context = ZMQ::Context.new
|
||||
subscriber = context.socket(ZMQ::SUB)
|
||||
|
||||
subscriber.setsockopt(ZMQ::SUBSCRIBE, "")
|
||||
|
||||
while true do
|
||||
begin
|
||||
subscriber.connect(EDDN_RELAY)
|
||||
puts "Connected to EDDN"
|
||||
|
||||
poller = ZMQ::Poller.new()
|
||||
poller.register(subscriber, ZMQ::POLLIN)
|
||||
|
||||
while true do
|
||||
socks = poller.poll(EDDN_TIMEOUT)
|
||||
|
||||
if socks
|
||||
msg = ZMQ::Message.new()
|
||||
message = subscriber.recvmsg(msg, ZMQ::DONTWAIT)
|
||||
message = Zlib::Inflate.inflate(msg.copy_out_string)
|
||||
json = JSON.parse(message)
|
||||
puts json
|
||||
else
|
||||
puts "Disconnected from EDDN (After timeout)"
|
||||
subscriber.disconnect(EDDN_RELAY)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
rescue StandardError => e
|
||||
puts "Disconnect from EDDN (After receiving ZMQError)"
|
||||
puts "ZMQSocketException: #{e}"
|
||||
subscriber.disconnect(EDDN_RELAY)
|
||||
sleep(10)
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user