2017-02-10 7 views
0

У меня есть система, как это:WCF дуплексного канала для связи между процессами

служба Windows (WCF, данные/событие) < -> Веб-приложение < -> Веб-клиент

мне нужна одновременный ответ для клиентов Запросы. У меня есть некоторые события из службы для клиентов. Таким образом, дуплексный канал - это путь. Но мне нужна высокая пропускная способность, потому что клиенты звонят одновременно.

Запрос/ответ подход

Для того, чтобы не сериализовать запросы канала, мне нужно больше каналов для параллельных вызовов, не так ли? Но как обращаться с каналом обратного вызова? Хо, чтобы он все еще был открыт для приема событий, даже при ошибках канала?

OneWay подход

На канале должно быть достаточно (не дожидаясь подготовки данных), но как связать данные, передаваемые на обратный вызов с исходным запросом, чтобы иметь возможность составить ответ для клиента?

Каков путь? Спасибо.

ответ

0

В простом случае, когда веб-клиент отправляет запрос в веб-приложение, а веб-приложение (возможно) отправляет запрос (-ы) в службу WCF, нет необходимости в двустороннем связывании вообще.

Что касается событий, поднятых сервисом, который будет запущен в веб-клиенте, я бы предложил использовать message broker, который поддерживает WebSockets - например RabbitMQ. Он имеет plugin, совместимый с WebSockets и WCF binding.

Взяв все вместе, можно создать сервер RabbitMQ, который принимает сообщения из службы WCF и отправляет его на веб-клиент, который подписывается на фид событий от Javascript.

+0

Мне кажется, что он будет похож на вторую услугу WCF в веб-приложении только для приема событий из службы Windows, подталкивая их к клиентам с помощью SignalR (уже используемого в моем решении). Неплохая идея. :-) – Fanda

 Смежные вопросы

  • Нет связанных вопросов^_^