在C#中通过WebSocket检索一个价格流。 - 页 7

 
Maxim Dmitrievsky:
例如,将它们保存在一个文件中,同样有必要制作一些东西)

所以在最开始的时候,我从HTML表格单元中,通过OnChange事件(我不记得确切的名字了)来写。简而言之,通过DHTML和浏览器对象模型。这里有人建议直接在C#程序中启动浏览器,这使任务更容易。而所有的小部件代码现在都在我的本地--可以修改。

怎么办呢,--我不擅长插座,没必要莫名其妙。

 
Yuriy Asaulenko:

所以在最开始的时候,我从HTML表格单元中,通过OnChange事件(我不记得确切的名字了)来写。简而言之,通过DHTML和浏览器对象模型。这里有人建议直接在C#程序中启动浏览器,这使任务更容易。而且所有的小部件代码现在都在我的本地--可以修改。

怎么办呢,--我不擅长插座,没必要莫名其妙。

我不需要重新发明一个轮子,在某个地方开始做什么。一切都已经存在--WebBrowser对象。这就是我所说的。我以为你也在谈论这个问题。你必须要抓住里面的事件。哪一个--我不知道--我还没有去研究,我也没有时间!"。但这个主题很有意思。

 
mmmoguschiy-new:
一切都已经准备就绪--WebBrowser对象。这就是我所说的。我以为你也在谈论这个问题。在里面,需要抓住这个事件。哪一个--我不知道--我没有去研究,我也没有时间!"。但这个主题很有意思。

我意识到了这一点。我也知道这件事。:)这实际上等同于启动IE。

虽然之前,几年前,通过脚本直接在HTML页面上做,这已经与程序互动了。

 
我看不出一个网络浏览器对象有什么用处--所以我们创建这个对象,将一个页面加载到其中,然后呢?:))这有点酷。如何访问页面元素,写代码让我们不要像消息。"哦,真是个有趣的话题,但我现在没有时间。"人们已经写了5个,没有一行代码。或者就不写了,那不就成了不必要的信息,这就要花时间去处理了:)
 
Maxim Dmitrievsky:
我不相信网络浏览器对象会有什么用处--我们已经创建了这个对象,在其中加载了一个页面,然后呢?:))有点酷。如何访问页面元素,写代码让我们不要像消息。"哦,真是个有趣的话题,但我现在没有时间。"人们已经写了5个,没有一行代码。或者不写,那就不是不必要的信息了,那就得花时间去处理了:)

该页面不需要加载以获得每个新的报价 - 它被加载一次到内存中,然后由内部脚本更新。

我不能在代码方面帮助你,这不是我的领域。但提示是正确的 )

 

;)

真的,为什么要重新发明车轮......。

你可以很容易地把小组件保存到磁盘上,就像任何html页面一样。在页面文件夹中,你会发现两个脚本,faye-client.js和lmax-widget-quotes-v2.min.js。

他们做所有的工作...

你可能能够通过C#应用程序和内置的WebBrowser与它们互动。当然,有必要加载一个本地副本,初步改变了Java脚本,以便接收的数据被倾倒在必要的地方......。

这就是它的全部内容...把这些脚本拆开,稍作修改;)))

 
Andrey Ziablytsev:

;)

真的,为什么要重新发明车轮......。

该小组件可以很容易地保存到磁盘,就像任何HTML页面一样。在页面文件夹中,你会发现两个脚本,faye-client.js和lmax-widget-quotes-v2.min.js。

他们做所有的工作...

你可能能够通过C#应用程序和内置的WebBrowser与它们互动。当然,有必要加载一个本地副本,并初步修改了Java脚本,以便在必要时将收到的数据自行转储。

这就是它的全部内容...把这些脚本拆开,稍作修改;)))

...只要向右滚动一英里的脚本...:) 不,我现在先把它们放在插座里,看看它们是否能工作,如果有人通过网络浏览器做到了,那就对他们表示赞扬 :)
 

到目前为止,我的个人*cough代码看起来是这样的,与服务器的连接已经建立,但什么也没读到

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中的一个。

值是可读的,但小部件本身却画歪了。也许有人能解决这个问题。

哦......酷,谢谢。至少我现在有了一个例子,如何做该做的事)我不需要这个小部件,它可以从窗口中删除。最主要的是,现在可以使用引号了 )