Программирование / websocket / ruby

Есть программа, которая соединяется с сервером и получает от него некие данные + сигнализирует каждые 15 или 60 секунд.

require 'faye/websocket'
require 'eventmachine'

data = []

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}"]


Вопросы:

1. Как мне поместить в массив остальные данные (кроме servertime) т.е.
pair,time,open,low,high,close

2. Как сделать так, чтоб на экран постоянно не выводилась вся эта информация, а выводилось только то что вывожу я при помощи команды puts

23.01.18
0 ответов
Ответов пока нет

Глеб Черняк

от 55 p.
Сейчас на сайте
Глеб Черняк
Глеб Черняк
Эксперт месяца
Читать ответы

Александр

от 100 p.
Сейчас на сайте
Читать ответы

Alexander

от 300 p.
Сейчас на сайте
Читать ответы
Посмотреть всех экспертов из раздела Технологии
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store