Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr 如何使用客户端控制台应用程序迭代并写出股票符号和价格?_Signalr_Signalr Hub_Signalr.client - Fatal编程技术网

Signalr 如何使用客户端控制台应用程序迭代并写出股票符号和价格?

Signalr 如何使用客户端控制台应用程序迭代并写出股票符号和价格?,signalr,signalr-hub,signalr.client,Signalr,Signalr Hub,Signalr.client,该示例和文档似乎展示了如何使用JavaScript信号库实现这一点,我正在尝试使用控制台客户端应用程序来获取所有股票,但没有成功 以下是我的客户端控制台应用程序代码,重点是GetAllStocks,而不是此时的更新: using System; using System.Collections; using System.Threading.Tasks; using Microsoft.AspNet.SignalR.Client.Hubs; namespace StockTicker.Cli

该示例和文档似乎展示了如何使用JavaScript信号库实现这一点,我正在尝试使用控制台客户端应用程序来获取所有股票,但没有成功

以下是我的客户端控制台应用程序代码,重点是GetAllStocks,而不是此时的更新:


using System;
using System.Collections;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR.Client.Hubs;

namespace StockTicker.Client
{
    class Program
    {

       static void Main(string[] args)
        {
            RunAsync().Wait();
        }

       private static async Task RunAsync()
        {

            var hubConnection = new HubConnection("http://localhost:8080/");
            IHubProxy stockTickerMini= hubConnection.CreateHubProxy("stockTickerMini");


             stockTickerMini.On("GetAllStocks", stocks =>
                {
                    foreach (var stock in stocks)
                    { Console.WriteLine(stock.Symbol + ":" + stock.Price); }
                });


              await hubConnection.Start();

           }
    }
 }



您的代码不正确。GetAllStocks是客户端可以在服务器上调用的方法(例如,它是服务器公开的)。你可以做:

var stocks = await stockTickerMini.Invoke<IEnumerable<Stock>>("GetAllStocks");
var stocks=wait stockTickerMini.Invoke(“GetAllStocks”);
如果您希望在股票更新时被回调,则需要查看服务器端在客户端对象上回调的内容:

具体内容如下:


您可能应该显示您编写的代码,以便人们能够提供帮助。确定添加了客户端代码。客户端是否需要对服务器的引用?客户端不需要服务器引用即可工作。显然,如果您有一个在客户端和服务器之间共享的类型,那么它可以存在于共享程序集中。如果您选择在服务器上使用该类型,并且希望在客户端上使用该类型,那么是的,您需要一个引用。也许我不清楚。如果客户机需要使用Stock类,那么您需要对在客户机上定义Stock的程序集(项目)进行引用。是的,这就是我的想法,但在示例中,我没有看到任何关于引用定义Stock类的服务器项目程序集以便在客户机中使用它的内容。