Signalr 信号器无法调用非委托类型
我试图通过编写一个非常简单的应用程序来学习Signal。。。它基本上是周期性地发送“Hello”(类似于,但要简单得多) 这是我的中心:Signalr 信号器无法调用非委托类型,signalr,Signalr,我试图通过编写一个非常简单的应用程序来学习Signal。。。它基本上是周期性地发送“Hello”(类似于,但要简单得多) 这是我的中心: public class StockTickerHub : Hub { public void Hello() { var s = StockTicker.stockTicker; Clients.All.hello(); } } …下面是应该定期发送消息的代码: public class Stock
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
类中启动股票代码。(如果您希望每个连接覆盖一个tickerOnConnected
,那么获取客户机的连接id并为他们提供单独的ticker…啊,这太简单了。我才刚刚开始,所以我不确定做事情的正确方法-谢谢你的提示。
stockTickerHub.Clients.All().hello();
stockTickerHub.Clients.All.hello();