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

时间:2013-09-12 22:46:27

标签: signalr signalr-hub signalr.client

示例here和文档here似乎显示了如何使用JavaScript SignalR libray执行此操作,我正在尝试自己使用控制台客户端应用程序来解决这个问题,而没有任何成功。

这是我的客户端控制台应用程序代码,只关注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();

           }
    }
 }


1 个答案:

答案 0 :(得分:0)

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

var stocks = await stockTickerMini.Invoke<IEnumerable<Stock>>("GetAllStocks");

如果您想在更新库存时回电话,那么您需要查看服务器端在客户端对象上回拨的内容:

这里详细说明:

http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-net-client#establishconnection