Как лучше отправлять обновления данных клиентам в .net? - PullRequest
0 голосов
/ 03 ноября 2011

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

Это работает хорошо, но имеет потенциальные проблемы, поскольку брандмауэры должныбыть настроен для разрешения доступа к клиентским ПК.

Есть несколько способов, которые я вижу, чтобы обойти это, но у каждого есть свои недостатки.В настоящее время я изучаю wcf или систему очередей типа msmq, однако у меня нет никакого опыта с ними, и кривая обучения кажется крутой.Другие варианты, которые я имею в виду:

  • Получение клиентов для вызова метода сервера, который не возвращается, пока не появится сообщение - потенциальные проблемы с таймаутами, отключениями и т. Д.?
  • Изменитьв WCF и использовать обратные вызовы - не уверены, требует ли это, чтобы клиент был конечной точкой?
  • Использовать таймер и проверять сообщения каждые несколько секунд - возможность затопить сеть

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

Ответы [ 3 ]

1 голос
/ 03 ноября 2011

Если клиенты периодически подключаются, но все еще должны получать сообщение об обновлении, MSMQ довольно прост.

1 голос
/ 03 ноября 2011

WCF и обратные вызовы хорошо работают в этом сенарио.См. Ответ на этот несхожий вопрос: WCF - рекомендуется обратный вызов клиента? WCF - это довольно гибкие временные интервалы конфигурации транспорта и соединения (тайм-ауты и т. Д.).

0 голосов
/ 03 ноября 2011

Возможно, вы захотите взглянуть на ClickOnce .

Вот статья о выборе стратегии обновления ClickOnce: http://msdn.microsoft.com/en-us/library/s22azw1e.aspx

...