Программирование / websocket / ruby - вопрос №2743405

Есть программа, которая соединяется с сервером и получает от него некие данные + сигнализирует каждые 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 ответов
Ответов пока нет

Александр

300 р.
Сейчас на сайте
Читать ответы

Глеб Черняк

от 55 p.
Читать ответы

Олег Николаевич

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