Технологии
Программирование / 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, 2018 г.
-
Всего ответов: 0