Я работаю над проектом, который должен взаимодействовать с пользователями в реальном времени. В основном я следую примеру «синхронизировать страницы по веб-апи», который вводится в this video (также у Брэда Уилсона есть приятное видео, подобное этому) и repository here for video.Как я могу лучше контактировать между участниками приложения и веб-API и концентраторами Signalr
Мой вопрос касается отображения элементов приложения с помощью их ConnectionIds, который производит Signalr.
Я привык экономить каждый signalr идентификатор соединения в таблице базы данных, как:
ConnectionID
MemberID
ConnectionStatusID -> Connected (1), Disconnected (2), переподключения (3)
Я делал идентификаторы соединения членов в большинстве запросов.
Затем я решил изменить этот дизайн. Теперь я группируя каждый элемент с уникальной строкой, когда OnConnected и OnDisconnected как это:
public override Task OnConnected()
{
Groups.Add(this.Context.ConnectionId, string.Format("MyHub_{0}",HubUser.MemberID));
return base.OnConnected();
}
public override Task OnDisconnected()
{
Groups.Remove(this.Context.ConnectionId, string.Format("MyHub_{0}",HubUser.MemberID));
return base.OnConnected();
}
Сейчас я ничего из базы данных об идентификаторах соединения члена не выборки. Он работает только через веб-интерфейс для синхронизации между вкладками браузера.
Я просто показать, как я обработки входящего запроса и использование концентратора в Web API:
public HttpResponseMessage Example()
{
string msg = "Example to all";
//some other process
//Hub is an instance of a IHubContext
Hub.Clients.Group(string.Format("MyHub_{0}", HubUser.MemberID)).example(msg);
return Request.CreateResponse(HttpStatusCode.OK, msg);
}
Так какой из них вы считаете эффективным способом для использования Signalr. Что бы вы предложили, возможно, лучше, чем эти. Является ли зависимость между концентратором и WebApi хорошим выбором дизайна.
А также проект будет развернут на несколько серверов, и Load Balancer будет работать перед ними (для этого я собираюсь использовать Sql Backplane). Есть несколько проектов, которые должны говорить с Web API, косвенно и с концентратором.
спасибо за информацию, вы бы сказать мне, и что вы думаете о зависимости между Web API и signalr, как в моем случае. Есть ли у вас какие-либо соображения дизайна, из вашего опыта. Если у вас есть важные воспоминания о объединительной панели sql, не могли бы вы поделиться ими, пожалуйста. –