2010-08-27 4 views
0

У меня есть многоуровневая односервисная архитектура (я реализую как сервис, так и клиент) (используя .net 3.5, C#, приложение/сервис Windows).WCF постоянное соединение

Что лучше всего обновить guis? я знаю дуплексную связь, но если клиент не посылает никаких запросов в течение некоторого времени, канал закрывается! увеличение тайм-аута - не лучшее решение ...?!

С уважением Маркус

+2

Дайте дополнительную информацию. Почему, по-вашему, вам нужна дуплексная связь? Какую услугу вы используете? Какое обязательство? –

ответ

0

ГИП посылают команды на службу в TCP Duplex. Каждый раз один GUI меняет некоторые вещи, другие guis должны быть проинформированы об изменениях, которые происходят с сервисом.

первое решение: guis может опросить каждые x секунд, чтобы спросить: есть ли обновления?

, но мне не очень нравится это решение. каждый раз, когда происходит изменение, служба отправляет «gui, который вы должны обновить» через обратный вызов для каждого gui. но mayby ​​все каналы открыты не больше ...

надеюсь, что это помогает понять (извините за мой очень плохой английский)

0

Если вы хотите архитектуры, где клиент регистрируется на услугу и сервис выталкивает изменения данных для клиентов сразу же, когда происходят изменения, чем двустороннее связывание. В противном случае не используйте двустороннюю привязку.

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

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