Recuperación de un flujo de precios vía WebSocket en C#. - página 7

 
Maxim Dmitrievsky:
¿pero cómo sacarlos del widget? por ejemplo, para guardarlos en un archivo, igual hay que hacer algo)

Así que al principio escribí, desde las celdas de la tabla HTML, por el evento OnChange (no recuerdo el nombre exacto). En definitiva, a través de DHTML y los modelos de objetos del navegador. Alguien aquí ha aconsejado iniciar el navegador directamente en el programa C#, lo que facilita la tarea. Y todo el código del widget está ahora en mi local - puede modificar.

Qué hacer, - No soy bueno en los enchufes, no tenía que de alguna manera.

 
Yuriy Asaulenko:

Así que al principio escribí, desde las celdas de la tabla HTML, por el evento OnChange (no recuerdo el nombre exacto). En definitiva, a través de DHTML y los modelos de objetos del navegador. Alguien aquí ha aconsejado iniciar el navegador directamente en el programa C#, lo que facilita la tarea. Y todo el código del widget está ahora en mi local - se puede modificar.

Qué hacer, - No soy bueno en los enchufes, no tenía que de alguna manera.

No necesito reinventar una rueda y empezar algo en algún lugar. Todo existe ya - objeto WebBrowser. A eso me refería. Yo también pensé que hablabas de eso. Tienes que coger el evento dentro de él. Cuál - no lo sé - ¡no he entrado en ella y no tengo tiempo! Pero el tema es interesante.

 
mmmoguschiy-new:
Todo está ya en su sitio: el objeto WebBrowser. A eso me refería. Yo también pensé que hablabas de eso. Dentro de ella y necesita coger el evento. Cuál - no lo sé - ¡no he entrado en ella y no tengo tiempo! Pero el tema es interesante.

Soy consciente de ello. Yo también lo sé. :) Es prácticamente el equivalente a lanzar IE.

Aunque antes, hace unos años, lo hacía a través de scripts directamente en la página HTML, que ya interactuaban con el programa.

 
No veo cómo puede ser útil un objeto de navegador web - así que creamos este objeto, cargamos una página en él, ¿y luego qué? :)) Es algo genial. Cómo acceder a los elementos de la página, escribir el código no vamos a mensajes como: "Oh, qué tema tan interesante, pero ahora no tengo tiempo", la gente ya ha escrito 5 y ni una sola línea de código. O entonces no escriba, que no sería una información innecesaria, que tienen que pasar tiempo en el procesamiento :)
 
Maxim Dmitrievsky:
No compro lo que puede ser útil para el objeto del navegador web - bueno, hemos creado este objeto, cargado la página, y luego qué? :)) Es un poco genial. Cómo acceder a los elementos de la página, escribir el código no vamos a mensajes como: "Oh, qué tema tan interesante, pero ahora no tengo tiempo", la gente ya ha escrito 5 y ni una sola línea de código. O entonces no escriba, que no sería una información innecesaria, que tendría que pasar el tiempo en el procesamiento :)

No es necesario cargar la página para obtener cada nueva cotización: se carga una vez en la memoria y luego se actualiza mediante scripts internos.

No puedo ayudarte con el código, no es mi área. Pero el consejo es correcto )

 

;)

Realmente, para qué reinventar la rueda...

puedes guardar fácilmente el widget en el disco, como cualquier página html. En la carpeta de la página encontrarás dos scripts, faye-client.js y lmax-widget-quotes-v2.min.js

ellos hacen todo el trabajo...

Es probable que pueda interactuar con ellos a través de aplicaciones C# y del WebBrowser incorporado. Es necesario cargar una copia local por supuesto, preliminarmente haber cambiado los scripts de Java para que los datos recibidos se volcaron donde es necesario...

eso es todo... desmontar estos guiones y modificarlos ligeramente ;)))

 
Andrey Ziablytsev:

;)

Realmente, para qué reinventar la rueda...

el widget puede guardarse fácilmente en el disco, como cualquier página html. En la carpeta de la página encontrarás dos scripts, faye-client.js y lmax-widget-quotes-v2.min.js

ellos hacen todo el trabajo...

Es probable que pueda interactuar con ellos a través de aplicaciones C# y del WebBrowser incorporado. Es necesario cargar una copia local por supuesto, preliminarmente haber cambiado los scripts de Java para que los datos recibidos se volcaron donde es necesario...

eso es todo... desmontar estos guiones y modificarlos ligeramente ;)))

...sólo hay que desplazar una milla de guiones a la derecha... :) no estoy en sockets por ahora, a ver si puedes, si alguien lo hace a través de un navegador web, alabado sea :)
 

Hasta ahora mi código personal *cough se ve así, la conexión con el servidor se hace pero no se lee nada

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

Aquí hay uno en el WebBrowser.

Los valores son legibles, pero el propio widget se dibuja torcido. Tal vez alguien pueda arreglarlo.

Archivos adjuntos:
 
Event:

Aquí hay uno en el WebBrowser.

Los valores son legibles, pero el propio widget se dibuja torcido. Tal vez alguien pueda arreglarlo.

Ooh... genial, gracias. Al menos ahora tengo un ejemplo de cómo hacer lo que hay que hacer ) No necesito este widget, se puede quitar de la ventana. Lo más importante es que ahora se pueden utilizar las comillas )
Razón de la queja: