2012-01-19 3 views

ответ

10

Я не использовал его, но в основном это коммуникационная технология «реального времени» для связи между клиентом (javascript, silverlight, .NET) и ASP.NET. В настоящее время существует 3 метода связи «в реальном времени» (think chat application): опрос, длительный опрос и HTML5 WebSockets. SignalR добавляет уровень абстракции и использует все 3 из этих методов в зависимости от поддержки браузера и контекста. Вот статья, описывающая 3 метода (и как SignalR помогает): http://blog.maartenballiauw.be/post/2011/11/29/Techniques-for-real-time-client-server-communication.aspx

А вот статья из Hanselman (и функционирующая демо!) О том, как использовать его: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

Другое: http://jordanwallwork.co.uk/2011/10/signalr/

Концентратор - это класс, используемый для связи. В JavaScript вы можете использовать концентратор, как это:

$(function() { 
    var myConnection = $.connection.myHub; 
    $.connection.hub.start(); 
}); 

В ASP.NET вы это делаете:

public class Chat : Hub { 
    public void Distribute(string message) { 
     Clients.receive(Caller.name, message); 
    } 
} 

Оба эти фрагменты были взяты из ссылок, упомянутых выше.

+7

Да. Но что такое «хаб»? –

+0

Я отредактировал свой ответ. –

+0

Это немного спрятано, но верх этой страницы может помочь: https://github.com/SignalR/SignalR/wiki/Hubs – JohnL

4

Вы можете думать о концентраторах как контроллерах MVC Asp.NET для постоянных соединений между клиентом (javascript) и сервером (концентратором).

Простой способ отправки различных видов сообщений и данных между клиентом и сервером.

Параметры и возвращаемые значения автоматически сериализуются в JSON и на стороне клиента.

Концентраторы имеют концепцию добавления клиентов в группы, чтобы вы могли с помощью методов AddToGroup и RemoveFromGroup создавать функциональность в чате. поэтому вы можете отправлять сообщения всем клиентам в определенной группе.

Я действительно рекомендую загрузить код с GitHub и просмотреть образцы. Там есть чат-образец с номерами (группами).

0

Концентраторы - это высокоуровневые API SignalR, которые обеспечивают как клиентский сервер реального времени , так и RPC через HTTP-сервер. Концентратор поддерживает 1-ко-много RPC, например: все клиенты, группы клиентов, только вызывающий и т. Д. Транспортировка осуществляется по одному из следующих (лучше всего к худшему): WebSocket, сервер отправил события, навсегда кадр, длительный опрос.

см: https://channel9.msdn.com/Events/Build/2012/3-034