Как передать сообщение между клиентом и сервером через Интернет с помощью 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();? Что это начинается? Какой метод он будет вызывать на стороне сервера?
  • Кто и как будет вызывать метод Submit на стороне сервера? как передавать данные с клиентской стороны на серверную. Если возможно, дайте мне URL-адрес для хорошего начала работы с библиотекой SignalR.

person Thomas    schedule 17.08.2012    source источник


Ответы (1)


Функция Javascript hooking.removeLead будет вызываться всякий раз, когда вы вызываете Clients.removeLead(). Все привязки выполняются динамически между Javascript и C# и между C# и Javascript.

$.connection.hub.start() на самом деле является функцией соединения. Он подключит ваш клиент к серверу. Никакие сообщения не могут быть отправлены или получены, пока вы этого не сделаете. Функция start позволяет вам определить обратный вызов, который будет вызываться после завершения соединения.

Метод Submit на сервере будет вызываться всякий раз, когда вы выполняете вызов hooking.submit(json) на своем клиенте. Например, в результате заполнения пользователем какой-либо формы и нажатия кнопки.

Я рекомендую начать с официальной вики SignalR: http://www.asp.net/signalr.

person Vlad Ciobanu    schedule 17.08.2012