Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2017, 20:52
Новичок на форуме
Отправить личное сообщение для namazi74 Посмотреть профиль Найти все сообщения от namazi74
 
Регистрация: 19.09.2017
Сообщений: 4

Подключение к WebSocket биржи poloniex
Добрый вечер.
Хочу получать данные push по wss. Пользуясь их примерами, запускаю код из консоли cmder (предварительно установив node.js и autobahn):
var autobahn = require('autobahn');
var wsuri = "wss://api.poloniex.com";
var connection = new autobahn.Connection({
  url: wsuri,
  realm: "realm1"
});
 
connection.onopen = function (session) {
        function trollboxEvent (args,kwargs) {
                console.log(args);
        }
        session.subscribe('trollbox', trollboxEvent);
}
 
connection.onclose = function () {
  console.log("Websocket connection closed");
}
                       
connection.open();


И как бы я не менял функции и подписки всегда выдается сообщение:
Websocket connection closed

Каким образом можно отловить ошибку? Нужно ли открывать какие-то порты на клиенте для подключения к websocket? Есть ли у кого-то возможность проверить этот код через node.js и подсказать, что не так?
API poloniex лежит тут: https://poloniex.com/support/api/
Пример их реализации: https://pastebin.com/dMX7mZE0
Ещё нашел пример реализации с запуском через html-файл, но от тоже не заработал: https://codepen.io/Anderson-Juhasc/pen/pbOJmN

Последний раз редактировалось namazi74, 19.09.2017 в 20:58.
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2017, 08:28
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

События open не происходит, нет такого соединения.
Я написал запрос из браузера на этот адрес:
var socket = new WebSocket("wss://api.poloniex.com");
socket.onopen = function() {
  console.log('ok');
}

"Firefox не может установить соединение"
Короче, нет такого адреса. Я так думаю.
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2017, 08:56
Новичок на форуме
Отправить личное сообщение для namazi74 Посмотреть профиль Найти все сообщения от namazi74
 
Регистрация: 19.09.2017
Сообщений: 4

А не может быть такого что сертификат не принимается?
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2017, 09:03
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

У меня была такая мысль, потому что при GET-запросах https обычно прикручивается ещё строка query типа
http://api.blabla.com/?key=[key]
, но у сокет-соединений, вроде бы, нет такой опции (или я не знаю просто).

А вообще, WebSocket же работает так: сначала браузер посылает запрос по http/https - принимает ли сервер ws/wss? И если получает ответ, что принимает - соединяется по сокету и про http какбэ забывает. Я не знаю, как там всё устроено у этой биржи (или что это).

Последний раз редактировалось Audaxviator, 20.09.2017 в 09:09.
Ответить с цитированием
  #5 (permalink)  
Старый 20.09.2017, 09:12
Новичок на форуме
Отправить личное сообщение для namazi74 Посмотреть профиль Найти все сообщения от namazi74
 
Регистрация: 19.09.2017
Сообщений: 4

Странно, что если push биржи не работает, нигде про это нет ни слова...
Может быть вас натолкнет на мысль такая ошибка:
Когда открываю через браузер и смотрю в консоль разработчика, то выдается ошибка соединения и ссылается на конкретную строку autobahn:
?new b.WebSocket(a._options.url,a._options.protocols):new b.WebSocket(a._options.url);e.binaryType="arraybuffer"}else if("MozWebSocket"in b)e=a._options.protocols?new b.MozWebSocket(a._options.url
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2017, 09:18
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Хе. Я набрал в браузере вот так https://api.poloniex.com - там извинения, что пока сервер не работает, попробуйте позже.
Короче, я могу только догадываться, но думаю, что этот модуль, как и браузер, сначала отправляет такой запрос, но ответа не получает - на этом всё заканчивается.

Последний раз редактировалось Audaxviator, 20.09.2017 в 09:25.
Ответить с цитированием
  #7 (permalink)  
Старый 20.09.2017, 09:33
Новичок на форуме
Отправить личное сообщение для namazi74 Посмотреть профиль Найти все сообщения от namazi74
 
Регистрация: 19.09.2017
Сообщений: 4

Спасибо за разъяснения! Думал что неверно настраиваю коннект. По началу валились какие-то данные, но они не соответствовали реальности. А сейчас просто записываются ошибки, иногда проскакивают сделки, но реальные они или нет - не понятно. Написал в саппорт, жду.
Интересно, каким образом агрегаторы с них информацию собирают.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных из websocket UnRealm Общие вопросы Javascript 2 14.02.2017 00:56
Websocket что должен делать скрипт Sergey and AJAX и COMET 0 12.12.2016 23:05
Ошибка синтаксиса websocket = new WebSocket(uri, protocols); valmonv Internet Explorer 1 01.04.2016 12:39
WebSockets / Error during WebSocket handshake: Unexpected response code: 200 Siend Общие вопросы Javascript 1 10.11.2015 16:39
node.js - ws & websocket Reflexion AJAX и COMET 1 09.04.2013 01:14