如何在客户端和客户端之间传递消息使用SignalR通过Web服务器

时间:2012-08-17 13:48:37

标签: asp.net signalr

我听说SignalR是一个很好的消息库。我为SignalR获得了一些代码,但我无法理解它是如何工作的。

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;
  • 的含义是什么
  • removeLead
  • hooking.removeLead的位置
  • 这会做什么 $.connection.hub.start(); ?它从什么开始?它将在服务器端调用哪种方法?
  • 谁&amp;如何在服务器端调用Submit方法?如何将数据从客户端传递到服务器端。如果可能的话,请给我一个网址,以便为SignalR库做好准备。

1 个答案:

答案 0 :(得分:3)

只要您拨打hooking.removeLead,就会调用Javascript函数Clients.removeLead()。所有绑定都是动态完成的,在Javascript到C#之间以及C#和Javascript之间。

$.connection.hub.start()实际上是连接功能。它会将您的客户端连接到服务器。在您这样做之前,不能发送或接收任何消息。 start函数允许您定义在连接完成时调用的回调。

只要您在客户端进行Submit调用,就会调用服务器上的hooking.submit(json)方法。例如,由于用户填写某种形式并单击按钮。

我建议从SignalR官方维基开始:http://www.asp.net/signalr