我試圖通過編寫一個非常簡單的應用程序來學習SignalR ......它基本上定期發送「Hello」(如Stock Ticker,但更簡單)。SignalR無法調用非委託類型
這裏是我的樞紐:
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();
}
}
我得到一個RuntimeBinderException
在stockTickerHub.Clients.All().hello();
我。它說:
型 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 未處理的異常發生在System.Core.dll
其他信息:無法調用非委託類型
我究竟做錯了什麼?
客戶端JavaScript低於,以防萬一需要複製它。
<script type="text/javascript">
$(function() {
var chat = $.connection.stockTickerHub;
chat.client.hello = function() {
$("#log").append("Hello");
}
$.connection.hub.start().done(function() {
chat.server.hello();
});
});
</script>
啊,它非常簡單。我剛剛開始,所以我不確定正確的做法 - 感謝提示。 – Gigi