Что представляет собой Hub в SignalR - PullRequest
5 голосов
/ 19 января 2012

Я просто читал концентраторы в SignalR (https://github.com/SignalR/SignalR), но я не мог понять, что это такое. Это как группы в чате или что-то еще?

Ответы [ 4 ]

13 голосов
/ 19 января 2012

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

А вот статья Гансельмана (и демонстрационная версия!) О том, как ее использовать: 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);
    }
}

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

5 голосов
/ 19 января 2012

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

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

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

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

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

0 голосов
/ 25 февраля 2019

Читал об этом, чтобы прийти к четкому определенному ответу о том, что такое концентратор, и натолкнулся на этот вопрос. Несмотря на то, что здесь есть много ответов, они кажутся немного старыми в том смысле, что они не полностью раскрывают потенциал сигнала R.

Недавно я создал приложение push-уведомления с помощью singalR.

Представьте себе, что вы отправляете запрос AJAX, где вы вставляете данные в БД. Если вы подключаете список к базе данных, которая прослушивает изменения, вы можете затем отправить сообщения с сервера всем подключенным пользователям об этом конкретном изменении базы данных ... другими словами, push-уведомление о том, что что-то произошло.

Эта статья дает хороший пример того, как частично достичь этого

0 голосов
/ 08 марта 2017

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...