Added Ruby client example

This commit is contained in:
Rojo 2020-06-11 17:13:13 +02:00
parent f03a0857cf
commit 6ea46b4603
No known key found for this signature in database
GPG Key ID: B7C52FFB523CE7AD

49
examples/Ruby/client.rb Normal file
View 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