2012-08-17 17 views
1

我聽說SignalR是一個很好的消息傳遞庫。我爲SignalR獲得了一些代碼,但我無法理解它是如何工作的。如何使用SignalR通過Web在客戶端和服務器之間傳遞消息

JS

var hooking; 
$(function() { 

    hooking = $.connection.hooking; 
    hooking.removeLead = function(ref) { 
    $("lead" + ref).remove(); 
    }; 

    $.connection.hub.start(); 
}); 

C#

// Hooking.cs (placed in application root) 
public class Hooking : Hub 
{ 
    public void Submit(string jsonString) 
    { 
    var serializer = new JavaScriptSerializer(); 
    var json = serializer.Deserialize<HookingLeadResult>(jsonString); 
    Clients.removeLead(json.Ref); // Remove lead from client hooking windows 
    // update lead gen 
    } 
} 

我對上面的代碼問題。

  • 什麼hooking平均插件$.connection.hooking;
  • removeLeadhooking.removeLead
  • 什麼會做這$.connection.hub.start();?它是從什麼開始的?它將在服務器端調用哪種方法?
  • 誰&如何在服務器端調用Submit方法?如何將數據從客戶端傳遞到服務器端。如果可能的話,請給我一個用於SignalR庫的良好開端的網址。

回答

3

無論何時調用Clients.removeLead(),Javascript函數hooking.removeLead都會被調用。所有綁定都是動態完成的,在Javascript到C#之間以及在C#和Javascript之間。

$.connection.hub.start()實際上是連接功能。它會將您的客戶端連接到服務器。除非你這樣做,否則不能發送或接收消息。 start函數允許您定義完成連接時要調用的回調函數。

無論何時在客戶端上執行hooking.submit(json)調用,都會調用服務器上的Submit方法。例如,由於用戶填寫某種形式並點擊一個按鈕。

我推薦從SignalR官方wiki開始:http://www.asp.net/signalr

相關問題