Операция GetStreamingEvents
Найдите сведения об операции GetStreamingEvents EWS.
Операция GetStreamingEvents используется клиентами потоковой подписки для запроса уведомлений с сервера клиентского доступа. Ответ GetStreamingEvents возвращает массив элементов и событий, произошедших в почтовом ящике с момента последнего уведомления.
В следующем примере операции GetStreamingEvents показано, как запросить события и элементы, связанные с подпиской, которая определяется идентификатором подписки.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<soap:Body>
<GetStreamingEvents xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<SubscriptionIds>
<SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</SubscriptionId>
</SubscriptionIds>
<ConnectionTimeout>30</ConnectionTimeout>
</GetStreamingEvents>
</soap:Body>
</soap:Envelope>
В запросе используются следующие элементы:
В следующем примере ответа GetStreamingEvents показаны уведомления, отправляемые клиенту при получении нового сообщения электронной почты. Он включает уведомления для следующих событий: CreatedEvent, NewMail и ModifiedEvent.
<?xml version="1.0" encoding="utf-8" ?>
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<ServerVersionInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MajorVersion="15" MinorVersion="0" MajorBuildNumber="775" MinorBuildNumber="7" Version="V2_4" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<m:GetStreamingEventsResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:GetStreamingEventsResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Notifications>
<m:Notification>
<t:SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</t:SubscriptionId>
<t:CreatedEvent>
<t:TimeStamp>2013-09-16T04:31:29Z</t:TimeStamp>
<t:ItemId Id="AAMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwBGAAAAAABSSWVKrmGUTJE+MVIvofglBwDZGACZQpSgSpyNkexYe2b7AAAAAAENAADZGACZQpSgSpyNkexYe2b7AAANGFYwAAA=" ChangeKey="CQAAAA==" />
<t:ParentFolderId Id="AQMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwAuAAADUkllSq5hlEyRPjFSL6H4JQEA2RgAmUKUoEqcjZHsWHtm+wAAAgENAAAA" ChangeKey="AQAAAA==" />
</t:CreatedEvent>
<t:NewMailEvent>
<t:TimeStamp>2013-09-16T04:31:29Z</t:TimeStamp>
<t:ItemId Id="AAMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwBGAAAAAABSSWVKrmGUTJE+MVIvofglBwDZGACZQpSgSpyNkexYe2b7AAAAAAENAADZGACZQpSgSpyNkexYe2b7AAANGFYwAAA=" ChangeKey="CQAAAA==" />
<t:ParentFolderId Id="AQMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwAuAAADUkllSq5hlEyRPjFSL6H4JQEA2RgAmUKUoEqcjZHsWHtm+wAAAgENAAAA" ChangeKey="AQAAAA==" />
</t:NewMailEvent>
<t:ModifiedEvent>
<t:TimeStamp>2013-09-16T04:31:29Z</t:TimeStamp>
<t:FolderId Id="AQMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwAuAAADUkllSq5hlEyRPjFSL6H4JQEA2RgAmUKUoEqcjZHsWHtm+wAAAgENAAAA" ChangeKey="AQAAAA==" />
<t:ParentFolderId Id="AQMkADkzNjJjODUzLWZhMDMtNDVkMS05ZDdjLWVmMDlkYjQ1Zjc4MwAuAAADUkllSq5hlEyRPjFSL6H4JQEA2RgAmUKUoEqcjZHsWHtm+wAAAgEJAAAA" ChangeKey="AQAAAA==" />
<t:UnreadCount>1</t:UnreadCount>
</t:ModifiedEvent>
</m:Notification>
</m:Notifications>
</m:GetStreamingEventsResponseMessage>
</m:ResponseMessages>
</m:GetStreamingEventsResponse>
</soap:Body>
В ответе используются следующие элементы:
Чтобы найти другие параметры для ответного сообщения операции GetStreamingEvents , изучите иерархию схемы. Начните с элемента Notification .
В следующем примере показан ответ на ошибку на запрос GetStreamingEvents .
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetStreamingEventsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:GetStreamingEventsResponseMessage ResponseClass="Error">
<m:MessageText></m:MessageText>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:ResponseCode>ErrorInvalidSubscription</m:ResponseCode>
<m:ConnectionStatus>Closed</m:ConnectionStatus>
</m:ResponseMessages>
</GetStreamingEventsResponse>
</soap:Body>
</soap:Envelope>
При обработке запроса GetStreamingEvents сервер клиентского доступа выполняет следующие действия.
SubscriptionId (GetStreamingEvents) запроса подтверждается как действительная подписка, размещенная на сервере клиентского доступа. Если это не так, вызов GetStreamingEvents завершается ошибкой .
SMTP-адрес пользователя, прошедшего проверку подлинности для запроса, проверяется на наличие прав олицетворения. В противном случае запрос GetStreamingEvents завершается ошибкой .
Очередь подписки запрашивает события, ожидающие отправки клиенту. Если очередь не пуста, первые 50 событий из очереди извлекаются из очереди и кодируются в уведомление.
Если события в очереди не найдены, событие StatusEvent создается и кодируется в ответ на уведомление.
Ответ уведомления возвращается клиенту.
События, включенные в уведомление, удаляются из очереди подписки, а в качестве подложки для последнего возвращаемого события в качестве подложки для сервера клиентского доступа устанавливается водяной знак последнего возвращаемого события.
Время ожидания для подписки сбрасывается.