Javascript Websocket Подписаться на канал

Я пытаюсь подписаться на канал, используя нативный WebSocket в vanilla javascript (без использования какой-либо библиотеки) [поскольку я только что прочитал, это возможно, но я не уверен - пожалуйста, исправьте меня, если я ошибаюсь].

Я пытаюсь получить последнюю цену на биткойны

let ws = new WebSocket('wss://ws-feed.gdax.com');

var params = {
   "type": "subscribe",
   "channels": [{"name": "ticker", "product_ids": ["BTC-USD"]}]
}

ws.onmessage = function(msg) {
    console.log(msg);
}

Я пытаюсь подключиться к этому каналу, но мне не удалось это сделать. Я не получаю никаких выводов в консоли.

Как мне передать параметры в канал и начать слушать его?

2 ответа

Ниже приведен пример того, как подписаться на "ArticlesChannel", используя vanilla html5 websockets.

let ws = new WebSocket('ws://localhost:4000/cable');

ws.onopen = function(){
  //Subscribe to the channel
  ws.send(JSON.stringify({"command": "subscribe","identifier":"{\"channel\":\"ArticlesChannel\"}"}))
}    

ws.onmessage = function(msg) {
    console.log(JSON.parse(msg.data).message);
}

Отслеживание цен на криптовалюту в реальном времени

Примечание: я знаю, что это старый вопрос с принятым ответом, но я играл с веб-сокетами с разных криптобирж в течение последних нескольких дней и подумал, что было бы неплохо поделиться результатами.

Объяснение

Используя веб-сокеты, вы можете узнать цену любой валютной пары (например, BTC/USD) в режиме реального времени. Когда появляется новая информация (например, последняя цена), мы получаем ее через веб-сокет и передаем элементу HTML. Если последняя цена выше предыдущей, HTML-элемент будет отмечен зеленым галочкой. Если последняя цена совпадает с предыдущей, HTML-элемент остается черным. Если последняя цена ниже предыдущей, HTML-элемент помечается красным. Будьте осторожны, цена может появиться не сразу! В этом случае дождитесь следующей сделки.

У меня не было достаточно времени, чтобы получить данные с других криптовалютных бирж, потому что каждая криптовалютная биржа передает данные через веб-сокеты в немного другой форме (т. Е. Выходы немного отличаются). Следовательно, вы не можете просто скопировать и вставить код, потому что вы получите ошибку или, по крайней мере, не получите то, что хотите. Кроме того, подписки немного отличаются, и это еще одна причина, по которой вы не можете просто скопировать и вставить код.

Binance

Другие вопросы по тегам