Получение потока цен через WebSocket на С#. - страница 5

 
mmmoguschiy-new:
дополнил вопрос.
Данные вытягиваем из ячеек таблицы - у них имена (идентификаторы) имеются. Не проблема. Я это делал неск лет назад, но погрузив фрейм в свою локальную HTML страницу, далее через скрипты. Из нее фрейм и его события доступны. Полагаю, из браузера, погруженного в С++/С#, тоже, доступны идентификаторы  HTML страницы (фрейма).
 
mmmoguschiy-new:
а поподробнее? какое событие, и каким образом вы будете вытягивать данные после его возникновения?
нужно подписаться на событие сокета, через который в виджет данные падают :) Или найти правильный клиентский запрос к вебсокету, что бы в ответе сервер присылал котировочки. И постоянно долбить вебсокет запросами. Но лучше первый вариант.
 

эээ нет же, вебсокет нинада долбить, это же вебсокет;) однажды подписавшись на нужные инструменты останется только читать себе поток данных...

в этом виджете есть парочка жаваскриптов, они то и общаются с сервером через этот самый вебсокет... вот бы их расшифровать, все бы и прояснилось

 
Yuriy Asaulenko:
Данные вытягиваем из ячеек таблицы - у них имена (идентификаторы) имеются.
Это и называется парсинг!

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Получение потока цен через WebSocket на С#.

Yuriy Asaulenko, 2016.05.18 18:49

Событие - изменение цены в таблице виджета в браузере. ... Еще подробней не могу, т.к. сейчас др. задачи.

А это называется(цитируя себя же) "каким-то макаром идентифицировать обновление текущих котировок". Ну и собственно вопрос - так зачем писать то же самое, что написал я, только другими словами? Масло масляное? Приведите название события, на которое нужно подписаться либо фрагмент кода. К чему лишние слова? Ну если только вам за эти слова не платят...
 
Andrey Ziablytsev:

эээ нет же, вебсокет нинада долбить, это же вебсокет;) однажды подписавшись на нужные инструменты останется только читать себе поток данных...

в этом виджете есть парочка жаваскриптов, они то и общаются с сервером через этот самый вебсокет... вот бы их расшифровать, все бы и прояснилось

проблэмэ в том, что в стандартном классе .net нет метода подписки на события вебсокета https://msdn.microsoft.com/ru-ru/library/system.net.websockets.websocket(v=vs.110).aspx, с помощью него можно только долбить :)

т.е. нужно  либо с asp.net разбираться, там должны быть подходящие методы, или как-то по другому

ну или нет никакой проблэмэ, а я еще просто не до конца разобрался 

WebSocket - класс (System.Net.WebSockets)
  • msdn.microsoft.com
Пространство имен: System.Net.WebSockets Сборка: System (в System.dll) ИмяОписание ИмяОписание (Наследуется от Object.) Классы и члены классов в пространстве имен , которые поддерживаются в Windows 7, Windows Vista SP2 и Windows Server 2008, являются абстрактными классами. Это дает возможность разработчику приложения для...
 

в двух словах вебсокет - модификация простого сокета для JS, для работы через вебброузеры. соединение устанавливается в начале сеанса и держится вполть до закрытия страницы..

общение с сервером  это уже другой ворпос, тут используется  их собственный протокол в json, если я правильно понял. так вот вопрос в том что бы выкопать нужные запросы на подписку из того самого html/JavaScript/json...

затем создать соединение websocket, в сокет пихаем запрос на подписку, и читаем себе поток в цикле... 

эх, аж самому интересно стало, где бы время найти...

 

кстати клиентвебсокет имхо ближе к правде, вот что то в таком духе http://codereview.stackexchange.com/questions/41591/websockets-client-code-and-making-it-production-ready 

Websockets client code and making it production-ready
Websockets client code and making it production-ready
  • codereview.stackexchange.com
The following code is helpful to anyone who uses websockets in general... and is probably good template for anyone getting started in this area. I'd like to flesh this out into something that is more general purpose, and reusable, since the assumptions and questions I have will apply to many different situations. The Timespan "Delay" is used...
 
Andrey Ziablytsev:

в двух словах вебсокет - модификация простого сокета для JS, для работы через вебброузеры. соединение устанавливается в начале сеанса и держится вполть до закрытия страницы..

общение с сервером  это уже другой ворпос, тут используется  их собственный протокол в json, если я правильно понял. так вот вопрос в том что бы выкопать нужные запросы на подписку из того самого html/JavaScript/json...

затем создать соединение websocket, в сокет пихаем запрос на подписку, и читаем себе поток в цикле... 

эх, аж самому интересно стало, где бы время найти...

 

кстати клиентвебсокет имхо ближе к правде, вот что то в таком духе http://codereview.stackexchange.com/questions/41591/websockets-client-code-and-making-it-production-ready 

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

 

 

Запрос на подписку, похоже, такого вида

[{"channel":"/meta/subscribe","clientId":"0xedb0wsq7leqjx0hb680yfi5l5bffb","subscription":"/fixprof/depthmax/GBPUSD","id":"b"}]

и ответ сервера

[{"id":"b","clientId":"0xedb0wsq7leqjx0hb680yfi5l5bffb","channel":"/meta/subscribe","successful":true,"subscription":"/fixprof/depthmax/GBPUSD"}]
 
и без handshake'а тут не обойдешься, тут идет контроль клиентов, нужно сначала https запрос делать на подключение к wss, а затем уже подписываться
 
А вы действительно считаете, что виджет с сайта будет вам давать реал-тайм котировки без задержек? А если нет, то в чем смысл?
 
mmmoguschiy-new:
Это и называется парсинг!


А это называется(цитируя себя же) "каким-то макаром идентифицировать обновление текущих котировок". Ну и собственно вопрос - так зачем писать то же самое, что написал я, только другими словами? Масло масляное? Приведите название события, на которое нужно подписаться либо фрагмент кода. К чему лишние слова? Ну если только вам за эти слова не платят...

Эт Вы к чему?  Ну, слова вы тоже говорить умеете, и много. :) Тоже наверное платят? Парсинг? - ну, есть пробелы в терминологии. :)

Посмотрите объектную модель браузера и DHTML и увидите какие конкретно события нужно перехватывать. Эт если из страницы в браузере тянуть.  Как непосредственно из С# сделать я не в курсе. Не знаю - не пробовал. :)

Ps Посмотрел что есть парсинг - синтаксический анализ информации сайта. Дык мы вообще о разном. Стало быть и правильно сказал - скрипач парсинг не нужен.