Recuperando um fluxo de preços via WebSocket em C#. - página 7

 
Maxim Dmitrievsky:
mas o que retirá-los do widget? que em um arquivo, por exemplo, tudo mesmo é necessário fazer algo)

Assim, no início eu escrevi, a partir de células da tabela HTML, pelo evento OnChange (não me lembro do nome exato). Em resumo, através de DHTML e modelos de objetos de browser. Alguém aqui aconselhou iniciar o navegador diretamente no programa C#, o que torna a tarefa mais fácil. E todo o código widget está agora em meu local - pode ser modificado.

O que fazer, - Não sou bom em tomadas, não tinha que fazer de alguma forma.

 
Yuriy Asaulenko:

Assim, no início eu escrevi, a partir de células da tabela HTML, pelo evento OnChange (não me lembro do nome exato). Em resumo, através de DHTML e modelos de objetos de browser. Alguém aqui aconselhou iniciar o navegador diretamente no programa C#, o que torna a tarefa mais fácil. E todo o código do widget está agora em meu local - é possível modificar.

O que fazer, - Não sou bom em tomadas, não tinha que fazer de alguma forma.

Eu não preciso reinventar uma roda e começar algo em algum lugar. Tudo já existe - Objeto WebBrowser. Era disso que eu estava falando. Pensei que você também estivesse falando sobre isso. Você tem que pegar o evento dentro dele. Qual - não sei - ainda não entrei no assunto e não tenho tempo! Mas o assunto é interessante.

 
mmmoguschiy-new:
Tudo já está no lugar - o objeto WebBrowser. Era disso que eu estava falando. Pensei que você também estivesse falando sobre isso. Dentro dele e precisa pegar o evento. Qual deles - não sei - não entrei no assunto e não tenho tempo! Mas o assunto é interessante.

Estou ciente disso. Eu também sei sobre isso. :) É praticamente o equivalente ao lançamento do IE.

Embora antes, alguns anos atrás, o fizesse através de scripts diretamente na página HTML, que já interagia com o programa.

 
Não vejo como um objeto de navegador pode ser útil - então criamos este objeto, carregamos uma página nele, e depois o quê? :)) É meio legal. Como acessar os elementos da página, escreva o código, não vamos escrever mensagens como: "Oh, que tópico interessante, mas agora não tenho tempo", as pessoas já escreveram 5 e nem uma única linha de código. Ou então não escreva, isso não seria uma informação desnecessária, que tem que gastar tempo no processamento :)
 
Maxim Dmitrievsky:
Eu não compro o que pode ser útil para o objeto do web browser - bem, nós criamos este objeto, carregamos a página, e então o que? :)) Meio legal. Como acessar os elementos da página, escreva o código, não vamos escrever mensagens como: "Oh, que tópico interessante, mas agora não tenho tempo", as pessoas já escreveram 5 e nem uma única linha de código. Ou então não escrever, isso não seria uma informação desnecessária, que teria que gastar tempo no processamento :)

A página não precisa ser carregada para obter cada nova cotação - ela é carregada uma vez na memória e depois atualizada por scripts internos.

Não posso ajudá-los com o código, não é minha área. Mas a dica está certa )

 

;)

Realmente, por que reinventar a roda...

você pode facilmente salvar o widget em disco, como em qualquer página html. Na pasta da página você encontrará dois scripts, faye-client.js e lmax-widget-quotes-v2.min.js

eles fazem todo o trabalho...

Você provavelmente é capaz de interagir com eles através de aplicações C# e do WebBrowser incorporado. É necessário carregar uma cópia local, claro, tendo mudado preliminarmente os scripts Java para que os dados recebidos fossem despejados onde for necessário...

é só isso... desmontar estes roteiros e modificá-los ligeiramente ;)))

 
Andrey Ziablytsev:

;)

Realmente, por que reinventar a roda...

o widget pode ser facilmente salvo em disco, como em qualquer página html. Na pasta da página você encontrará dois scripts, faye-client.js e lmax-widget-quotes-v2.min.js

eles fazem todo o trabalho...

Você provavelmente é capaz de interagir com eles através de aplicações C# e do WebBrowser incorporado. É necessário carregar uma cópia local, é claro, tendo mudado preliminarmente os scripts Java para que os dados recebidos fossem despejados por eles mesmos onde for necessário...

é só isso... desmontar estes roteiros e modificá-los ligeiramente ;)))

basta rolar uma milha de roteiros para a direita. :) não, vou colocá-los em tomadas por enquanto, ver se funcionam, se alguém consegue através de um web browser, louvado seja para eles :)
 

Até agora meu código pessoal *cough é assim, a conexão com o servidor é feita, mas nada é lido

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());
            }
        }
    }
}
 

Aqui está um no WebBrowser.

Os valores são legíveis, mas o widget em si é desenhado de forma torta. Talvez alguém possa consertá-lo.

Arquivos anexados:
 
Event:

Aqui está um no WebBrowser.

Os valores são legíveis, mas o widget em si é desenhado de forma torta. Talvez alguém possa consertá-lo.

Ooh... legal, obrigado. Pelo menos agora tenho um exemplo de como fazer o que fazer ) Não preciso deste widget, ele pode ser removido da janela. O principal é que as citações podem agora ser utilizadas )
Razão: