2015-01-09 2 views
3

Я собираюсь создать свою собственную систему, включая веб-сайт asp.net и веб-api, они размещаются на отдельном сайте. Архитектурная диаграмма, подобная картинке ниже.SignalR уведомляет как asp.net, так и веб-клиент клиентов api на отдельном сайте

http://i.stack.imgur.com/qAlCO.jpg

Каждый раз, когда обновление клиента что-то. Мне нужно уведомить остальных. Например, если клиент 1 загружает фотографию через Интернет, то клиент 3 и (мобильное приложение) и клиент 4 (настольное приложение) должны получить уведомление. Моя проблема заключается в том, как сообщить SignalR отправить уведомление клиентам в этом случае. Пожалуйста посоветуй.

+0

Диаграмма выглядит неплохо, но все же немного запутанна, можете ли вы предоставить дополнительную информацию об узле ASP.NET? Я бы ожидал, что в вашем дизайне у вас будет ASP.NET MVC, который просто поглощает Web Api некоторой инфраструктурой MVVM (например, Knockoutjs). – Vladimirs

+0

Привет, я работаю над приложением, имеющим те же требования. Вы закончили это? Я понятия не имею, как я могу это сделать. Является ли signalR совместимым и для IOS? – Sunny

ответ

1

Ваша диаграмма должна быть изменена, чтобы обеспечить то, что вам нужно.

Для того, чтобы это работало, все типы клиентов должны быть осведомлены о SignalR. Для веб-приложения это просто, так как «клиентский» код - это сам код сайта.

Для мобильного и настольного компьютера у вас есть дополнительный слой (webapi), который в этом случае является препятствием.

Вы должны определить концентратор SignalR и подключиться к нему со всех клиентов: WebApp, MobileApp, DesktopApp.

Зная это, вы можете создать проект WebAPI, содержащий все методы API и концентратор SignalR и подключиться к нему из других приложений, включая веб-сайт.

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