Signalr 信号器无法调用非委托类型

Signalr 信号器无法调用非委托类型,signalr,Signalr,我试图通过编写一个非常简单的应用程序来学习Signal。。。它基本上是周期性地发送“Hello”(类似于,但要简单得多) 这是我的中心: public class StockTickerHub : Hub { public void Hello() { var s = StockTicker.stockTicker; Clients.All.hello(); } } …下面是应该定期发送消息的代码: public class Stock

我试图通过编写一个非常简单的应用程序来学习Signal。。。它基本上是周期性地发送“Hello”(类似于,但要简单得多)

这是我的中心:

public class StockTickerHub : Hub
{
    public void Hello()
    {
        var s = StockTicker.stockTicker;

        Clients.All.hello();
    }
}
…下面是应该定期发送消息的代码:

public class StockTicker
{
    public static StockTicker stockTicker = new StockTicker();
    private Thread thread;

    public StockTicker()
    {
        var stockTickerHub = GlobalHost.ConnectionManager.GetHubContext<StockTickerHub>();

        this.thread = new Thread(() =>
            {
                while (true)
                {
                    stockTickerHub.Clients.All().hello();
                    Thread.Sleep(1000);
                }
            }
        );

        this.thread.Start();
    }
}
简单更改:

stockTickerHub.Clients.All().hello();
致:

调试器应该已经告诉您此错误。更新后我尝试了你的代码。它正在工作

关于代码设计的备注:


我不会在
hello
事件中启动一个新的发送线程,每次任何客户端调用此方法时都会启动一个新的发送线程。我不认为那是你想做的。作为一个更平滑的例子,您可以在
Startup
类中启动股票代码。(如果您希望每个连接覆盖一个ticker
OnConnected
,那么获取客户机的连接id并为他们提供单独的ticker…

啊,这太简单了。我才刚刚开始,所以我不确定做事情的正确方法-谢谢你的提示。
stockTickerHub.Clients.All().hello();
stockTickerHub.Clients.All.hello();