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

 
Maxim Dmitrievsky:
а через что их вытаскивать из виджета? что бы в файл сохранять, например, всеравнож что-то мутить надо )

Так в самом начале писал, из ячеек HTML таблицы, по событию OnChange (точное имя не помню). Короче, через объектные модели DHTML и браузера. Кто-то здесь-же посоветовал, браузер прямо в проге C# запустить, что облегчает задачу. Да и весь код виджета теперь у меня в локале - можно модифицировать.

Что делать, - в сокетах не силен, не приходилось как-то.

 
Yuriy Asaulenko:

Так в самом начале писал, из ячеек HTML таблицы, по событию OnChange (точное имя не помню). Короче, через объектные модели DHTML и браузера. Кто-то здесь-же посоветовал, браузер прямо в проге C# запустить, что облегчает задачу. Да и весь код виджета теперь у меня в локале - можно модифицировать.

Что делать, - в сокетах не силен, не приходилось как-то.

Не нужно изобретать велосипед и что-то где-то запускать. Все уже имеется - объект WebBrowser. О нем речь и вел. Думал и вы о нем же. Внутри него и нужно отлавливать событие. Какое именно - не знаю - не вникал и некогда! Но тема интересна.

 
mmmoguschiy-new:
Все уже имеется - объект WebBrowser. О нем речь и вел. Думал и вы о нем же. Внутри него и нужно отлавливать событие. Какое именно - не знаю - не вникал и некогда! Но тема интересна.

Я в курсе. Я тоже о нем же. :) Практически это эквивалент запуска IE.

Хотя раньше, неск лет назад, делал через скрипты непосредственно в HTML странице, кот уже взаимодействовали с программой.

 
Не вкупаю чем может быть полезен объект веб браузер - ну создали мы этот объект, загрузили туда страницу, и что дальше? :)) Типа прикольно. Как получить доступ к элементам страницы, пишите код давайте а не сообщения вида: "Ой какая интересная тема, но мне сейчас некогда", человек 5 уже написало и ни одной строчки кода. Или тогда не пишите, что бы не было лишней инфы, на обработку которой приходится тратить время :)
 
Maxim Dmitrievsky:
Не вкупаю чем может быть полезен объект веб браузер - ну создали мы этот объект, загрузили туда страницу, и что дальше? :)) Типа прикольно. Как получить доступ к элементам страницы, пишите код давайте а не сообщения вида: "Ой какая интересная тема, но мне сейчас некогда", человек 5 уже написало и ни одной строчки кода. Или тогда не пишите, что бы не было лишней инфы, на обработку которой приходится тратить время :)

Тем, что страничку не надо грузить для получения каждой новой котировки — она один раз загружается в память, а потом обновляется внутренними скриптами.

Кодом не помогу, не мой профиль. Но подсказывают правильно )

 

;)

а и вправду, зачем изобретать велосипед...

виджет можно легко сохранить на диск, как и любую хтмл страницу.  при этом в папке страницы обнаружите два скрипта, faye-client.js и lmax-widget-quotes-v2.min.js

они то и делают все работу...

с ними вероятно можно взаимодействовать из приложения на с# загузив страницу  через встроенный WebBrowser. Грузить нужно ессно локальную копию, предварительно изменив ява-скрипты так что бы полученные данные сбрасывали сами куда нужно...

 всего то делов... разобрать эти скрипты, и слегка доработать  ;)))

 
Andrey Ziablytsev:

;)

а и вправду, зачем изобретать велосипед...

виджет можно легко сохранить на диск, как и любую хтмл страницу.  при этом в папке страницы обнаружите два скрипта, faye-client.js и lmax-widget-quotes-v2.min.js

они то и делают все работу...

с ними вероятно можно взаимодействовать из приложения на с# загузив страницу  через встроенный WebBrowser. Грузить нужно ессно локальную копию, предварительно изменив ява-скрипты так что бы полученные данные сбрасывали сами куда нужно...

 всего то делов... разобрать эти скрипты, и слегка доработать  ;)))

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

Пока мой личный *овнокод выглядит вот так, коннект к серверу происходит, но ничего не читается

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Net.WebSockets;

namespace LmaxSocket
{
    class Program
    {
        static void Main(string[] args)
        {
            // Создаем локальную конечную точку
            IPAddress ipAddr = IPAddress.Parse("66.175.215.164");
            IPEndPoint endPoint = new IPEndPoint(ipAddr, 443);
            TcpClient newClient = new TcpClient();
            bool conn = false; 

            try
            {
                // Соединяемся с сервером
                newClient.Connect(ipAddr, 443); // В этот момент сокет
                                                // порождает исключение, если
                                                // при соединении возникают проблемы
               conn = newClient.Connected; // проверяем статус соединения
              
               Console.WriteLine(conn.ToString()); // пишем статус соединения          
            }
            catch (SocketException ex)
            {
                Console.WriteLine("Exception: " + ex.ToString());
            }

                   
            try //этот код почему-то не обрабатывается как надо
            {
                NetworkStream tcpStream = newClient.GetStream(); // создаем сетевой поток для перехвата сообщений сокета
                byte[] bytes = new byte[newClient.ReceiveBufferSize];
                int bytesRead = tcpStream.Read(bytes, 0, newClient.ReceiveBufferSize);

                // Строка, содержащая ответ от сервера
                string returnData = Encoding.UTF8.GetString(bytes);
                Console.WriteLine(returnData); // почему-то эта строка не выводсится, и не возникает исключений
            }
            catch (SocketException ex)
            {
                Console.WriteLine("Exception: " + ex.ToString());
            }
        }
    }
}
 

Вот через WebBrowser.

Значения читаются, но сам виджет рисуется криво. Может кто поправит.

 

Файлы:
 
Event:

Вот через WebBrowser.

Значения читаются, но сам виджет рисуется криво. Может кто поправит.

 

оо.. ништяк, спасибо. Вот хоть есть пример теперь как чо делать ) да сдался он этот виджет, его можно вообще убрать из окна. Главное что котировки теперь можно использовать )