您將需要使用Hub。
下面是如何做到這一點(在0.5.3)的例子:
服務器端(中心):
public class MyDashboard : Hub
{
/* Have this method called every few seconds via a timer */
public void SendLoad()
{
// Will call the "retrieveLoad" JS method on the clients
Clients.retrieveLoad(new {
CPU = 10.25, // Put something relevant here
Memory = "80%" // Again, put something relevant here
});
}
public double GetDiskSpace()
{
return 3829847; // You'd replace the number with something more relevant
}
}
客戶端(JavaScript的):
var dashboard = $.connection.myDashboard;
dashboard.retrieveLoad = function(info) {
console.log("The CPU is at: " + info.CPU);
console.log("The Memory is at: " + info.Memory);
}
$.connection.hub.start(function() {
// This is called once the hub has started, so we need to wire up our click event
$("#myButton").click(function() {
dashboard.getDiskSpace(function(space) {
console.log("The disk space is at: " + space);
});
});
});
希望這有助於!請隨時停止通過我們的JabbR室與其他人討論框架:http://jabbr.net/#/rooms/signalr
注意:請記住,如果您想要在您的中心(私有/公共變量等)上保留任何內容以使數據保持靜態。
不,我的意思是我應該把Hub放在哪裏?在MVC應用上,對嗎?那麼EC2機器上的應用程序如何通過Web服務器將其東西發送到Web客戶端? – Agzam
EC2機器通過名爲SignalR.Client的.NET庫以常規客戶機的身份連接到您的MVC應用程序中的SignalR服務器。然後,您可以讓客戶端在服務器上調用集線器方法,然後向連接的客戶端廣播(無論它們是JS還是.NET並不重要)。 –