Есть программа, которая соединяется с сервером и получает от него некие данные + сигнализирует каждые 15 или 60 секунд.
require 'faye/websocket'
require 'eventmachine'
data = []
count = 0
EM.run {
ws = Faye::WebSocket::Client.new('wss://olymptrade.com/ws2')
ws.on :open do |event|
p [:open]
ws.send('{"uuid":"JCBQ7XBRMYSL0JB4N5","pair":"Bitcoin","size":60}')
end
ws.on :message do |event|
p [:message, event.data]
data << event.data
data_servertime = data[0].gsub(/[^\d]/, '').to_i
data.delete_at(0)
if ((data_servertime % 15) == 0)
puts "Прошло 15 секунд"
elsif ((data_servertime % 60) == 0)
puts "Прошло 60 секунд"
end
end
ws.on :close do |event|
p [:close, event.code, event.reason]
ws = nil
end
}
При запуске она постоянно выводит в консоль получаемые данные:
[:message, "{\"pair\":\"Bitcoin\",\"time\":1516567298,\"open\":11146.938,\"low\":11146.938,\"high\":11146.938,\"close\":11146.938}"]
[:message, "{\"servertime\":1516567298}"]
Вопросы:
- Как мне поместить в массив остальные данные (кроме servertime) т.е. pair,time,open,low,high,close
- Как сделать так, чтоб на экран постоянно не выводилась вся эта информация, а выводилось только то что вывожу я при помощи puts