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.

[Eliminato]  
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.

[Eliminato]  
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 ;)))

[Eliminato]  
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 :)
[Eliminato]  

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:
[Eliminato]  
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 )