2009-08-04 5 views
4

Мы можем использовать опрос, чтобы узнать об обновлениях из какого-либо источника, например клиентов, подключенных к веб-серверу. WCF предоставляет отличную возможность для дуплексных контрактов, в которых я могу поддерживать соединение с клиентом и делать вызовы по этому соединению по своему усмотрению. Некоторые взгляды в офисе обсуждали достоинства обоих решений, и я хотел получить обратную связь, когда каждая стратегия лучше всего используется.Опрос или нет опроса (в контексте веб-служб)

ответ

2

Я бы использовал механизм, основанный на событиях, вместо опроса. В WCF вы можете сделать это легко, следуя структуре Publish-Subscribe, которую Juval Lowy предоставляет на своем веб-сайте, IDesign.net.

2

Зависит от того, сколько у вас пользователей.

Скажите, что у вас есть 1 000 000 пользователей, у вас будут проблемы с сохранением многих сеансов.

Но если ваша система может отвечать на 1000 запросов опроса на секунду, каждый клиент может опросить каждые 1000 секунд.

0

Я думаю, что Шираз прибил это, но я хотел сказать еще две вещи.

  1. У меня были проблемы с дуплексом контрактов. Вы должны иметь все своих уток подряд в отношении канала обратного вызова ... вам нужно проверить его, чтобы он был открыт, и т. Д. В материале IDesign.net было бы минимальное количество сантехники код , вам придется включить.
  2. Если это имеет смысл для вашего решения (это подходит только в определенных ситуациях), то MSMQ привязки позволяет клиенту посылать данные в службу в асинхронном способом (например, дуплекс), но сервис не «опрос» для сообщений ... он получает уведомление, когда входит в очередь через под покровной сантехникой.

    Этот вид заставляет вас повернуть связь вокруг (клиент становится , сервер становится клиент), но если большинство связи является одним из способов, это обеспечит много преимуществ. Другое преимущество здесь, очевидно, в очереди связи - сервер может быть down и не пропустить никаких сообщений ... он будет выбирать их, когда он вернется онлайн.

Что-то думать.

+0

Также: Если вам нужна двусторонняя связь с MSMQ, вам необходимо реализовать обе конечные точки отдельно. У службы будет клиент и услуга, и клиент будет иметь сервис и клиент (в этом случае оба могут отправлять и получать сообщения). –