Recuperare un flusso di prezzi via WebSocket in C#. - pagina 7

 
Maxim Dmitrievsky:
ma cosa per tirarli fuori dal widget? che in un file, per esempio, tutto lo stesso è necessario per fare qualcosa)

Così all'inizio ho scritto, dalle celle della tabella HTML, dall'evento OnChange (non ricordo il nome esatto). In breve, attraverso DHTML e modelli di oggetti del browser. Qualcuno qui ha consigliato di avviare il browser direttamente nel programma C#, il che rende il compito più facile. E tutto il codice del widget è ora nel mio locale - può modificare.

Cosa fare, - non sono bravo con le prese, non ho dovuto in qualche modo.

 
Yuriy Asaulenko:

Così all'inizio ho scritto, dalle celle della tabella HTML, dall'evento OnChange (non ricordo il nome esatto). In breve, attraverso DHTML e modelli di oggetti del browser. Qualcuno qui ha consigliato di avviare il browser direttamente nel programma C#, il che rende il compito più facile. E tutto il codice del widget è ora nel mio locale - è possibile modificarlo.

Cosa fare, - non sono bravo con le prese, non ho dovuto in qualche modo.

Non ho bisogno di reinventare una ruota e iniziare qualcosa da qualche parte. Tutto esiste già - oggetto WebBrowser. Ecco di cosa stavo parlando. Pensavo che anche tu ne parlassi. Dovete catturare l'evento al suo interno. Quale - non lo so - non ho approfondito e non ho tempo! Ma l'argomento è interessante.

 
mmmoguschiy-new:
Tutto è già al suo posto - l'oggetto WebBrowser. Ecco di cosa stavo parlando. Pensavo che anche tu ne parlassi. All'interno di esso e bisogno di catturare l'evento. Quale - non lo so - non ho approfondito e non ho tempo! Ma l'argomento è interessante.

Ne sono consapevole. Ne sono anche a conoscenza. :) È praticamente l'equivalente del lancio di IE.

Anche se prima, alcuni anni fa, faceva attraverso script direttamente nella pagina HTML, che già interagiva con il programma.

 
Non vedo come un oggetto browser web possa essere utile - quindi creiamo questo oggetto, carichiamo una pagina in esso, e poi? :)) E' abbastanza figo. Come accedere agli elementi della pagina, scrivere il codice e non messaggi come: "Oh, che argomento interessante, ma ora non ho tempo", la gente ha già scritto 5 e non una sola riga di codice. O allora non scrivere, che non sarebbe informazioni inutili, che devono spendere tempo per l'elaborazione :)
 
Maxim Dmitrievsky:
Non compro quello che può essere utile per l'oggetto browser web - bene, abbiamo creato questo oggetto, caricato la pagina, e poi cosa? :)) Piuttosto figo. Come accedere agli elementi della pagina, scrivere il codice e non messaggi come: "Oh, che argomento interessante, ma ora non ho tempo", la gente ha già scritto 5 e non una sola riga di codice. O allora non scrivere, che non sarebbe informazioni inutili, che devono spendere tempo per l'elaborazione :)

La pagina non ha bisogno di essere caricata per ottenere ogni nuova citazione - viene caricata una volta in memoria e poi aggiornata dagli script interni.

Non posso aiutarti con il codice, non è il mio campo. Ma la punta è giusta )

 

;)

Davvero, perché reinventare la ruota...

si può facilmente salvare il widget su disco, proprio come qualsiasi pagina html. Nella cartella della pagina troverete due script, faye-client.js e lmax-widget-quotes-v2.min.js

fanno tutto il lavoro...

Probabilmente siete in grado di interagire con loro tramite applicazioni C# e il WebBrowser integrato. È necessario caricare una copia locale del corso, avendo preliminarmente cambiato gli script Java in modo che i dati ricevuti fossero scaricati dove è necessario...

non c'è altro da dire... smontare questi script e modificarli leggermente ;)))

 
Andrey Ziablytsev:

;)

Davvero, perché reinventare la ruota...

si può facilmente salvare il widget su disco, proprio come qualsiasi pagina html. Nella cartella della pagina troverete due script, faye-client.js e lmax-widget-quotes-v2.min.js

fanno tutto il lavoro...

Probabilmente siete in grado di interagire con loro tramite applicazioni C# e il WebBrowser integrato. È necessario caricare una copia locale del corso, avendo preliminarmente cambiato gli script Java in modo che i dati ricevuti fossero scaricati dove è necessario...

non c'è altro da dire... smontare questi script e modificarli leggermente ;)))

...basta scorrere un miglio di script a destra... :) no, sono in sockets per ora, vedi se lo ottieni, se qualcuno lo fa attraverso un browser web, sia lodato :)
 

Finora il mio codice personale *cough assomiglia a questo, la connessione al server è fatta ma non viene letto nulla

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

Eccone uno nel WebBrowser.

I valori sono leggibili, ma il widget stesso è disegnato male. Forse qualcuno può aggiustarlo.

File:
 
Event:

Eccone uno nel WebBrowser.

I valori sono leggibili, ma il widget stesso è disegnato male. Forse qualcuno può aggiustarlo.

Ooh... bene, grazie. Almeno ora ho un esempio di come fare quello che devo fare ) Non ho bisogno di questo widget, può essere rimosso dalla finestra. La cosa principale è che le virgolette possono ora essere usate )
Motivazione: