#notifications #exchangewebservices
#уведомления #веб-сервисы exchangewebservices
Вопрос:
Мне нужно написать часть интеграции Exchange для моего приложения. Всякий раз, когда контакт, задача, назначение и т.д. Создаются ЛЮБОЙ учетной записью Exchange на сервере, я хочу, чтобы мое приложение получало уведомление, чтобы оно могло создать эквивалентный объект в приложении.
При рассмотрении управляемого API EWS, а также API веб-служб более низкого уровня создается впечатление, что вы можете подписаться только на почтовый ящик всего пользователя или подпапку в этом почтовом ящике. Есть ли какой-либо способ для моего приложения подписаться просто на любые почтовые ящики на сервере?
Спасибо, Tedderz
Ответ №1:
Нет, Exchange не поддерживает уведомления «для всех почтовых ящиков». И вы действительно не хотите подписываться на все уведомления — представьте количество уведомлений, которые вы получите из более чем 1000 почтовых ящиков Exchange server. В случае общедоступных папок вы не можете подписаться на notoifcations для всего хранилища; просто так устроено. В более общем плане, не используйте события или уведомления для синхронизации — уведомления могут удаляться при больших нагрузках, и они удаляются. Для этого есть официально поддерживаемые API (Active Sync, ICS). В лучшем случае уведомления можно использовать как подсказку о том, что ваш код должен выполнить синхронизацию скорее раньше, чем позже.
Комментарии:
1. Просто хотел указать, что Exchange будет связывать уведомления. Таким образом, если за короткий промежуток времени произойдет 100 событий, вы можете получить только несколько уведомлений с несколькими событиями в каждом. Затем вы должны выполнить цикл определения типов событий и перейти оттуда.
2. Мне любопытно, что вы говорите, что уведомления могут удаляться при большой нагрузке. Насколько я знаю, уведомления хранятся в центрах сертификации так долго, как вам заблагорассудится (в ожидании повторного подключения всякий раз, когда происходит что-то необычное), и будут удалены только в том случае, если центр сертификации отправит вам уведомление, а вы не ответите в течение определенного периода времени. Отличный ответ. 1
3. Я понимаю. Это был бы рабочий сервер веб-приложений, подписывающийся на уведомления, а не мобильное устройство, поэтому я не думал, что нагрузка будет чрезмерно большой. Но если они вообще ненадежны, тогда нет смысла их использовать. Я не думаю, что есть способ выполнить общую синхронизацию? Похоже, ActiveSync / ICS предназначены для мобильных устройств и по-прежнему предназначены для одного почтового ящика за раз.
4. @Tedderz: Уведомления очень надежны, если ваше приложение обрабатывает их правильно. Если центр сертификации отправит вам уведомление (push или pull), а вы не ответите на него в течение определенного периода времени, вы потеряете свою подписку. Кроме того, термин «надежный» довольно расплывчатый, учитывая, что мы не знаем, каковы требования Дмитрия. Наконец, прежде чем отклонять уведомления EWS, вы должны протестировать его, чтобы увидеть, соответствует ли он вашим потребностям.