0

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

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

           }
    }
 }


4

1 回答 1

0

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

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

如果您想在股票更新时被回调,那么您需要查看服务器端在客户端对象上回调的内容:

这里有详细说明:

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

于 2013-09-13T16:31:10.223 回答