Ведение журнала клиентов (пакет SDK для Формата Windows Media 11)

[Функция, связанная с этой страницей, пакет SDK для Windows Media 11, является устаревшей функцией. Он был заменен средства чтения источника и записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

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

Приложение может указать некоторые сведения, зарегистрированные в журнале, вызвав метод IWMReaderAdvanced::SetClientInfo в объекте чтения. Например, можно указать строку агента пользователя, имя приложения проигрывателя или веб-страницу, на которую размещается проигрыватель.

Сведения о ведении журнала содержат GUID, определяющий сеанс. По умолчанию средство чтения создает идентификатор анонимного сеанса. При необходимости средство чтения может отправить идентификатор, который однозначно идентифицирует текущего пользователя. Чтобы включить эту функцию, вызовите метод IWMReaderAdvanced2::SetLogClientID со значением TRUE.

Объект чтения можно настроить для отправки сведений о ведении журнала на другой сервер в дополнение к исходному серверу. Для этого вызовите метод IWMReaderNetworkConfig::AddLoggingUrl с URL-адресом сервера. Этот URL-адрес должен указывать на скрипт или исполняемый файл, который может обрабатывать HTTP-запросы GET и POST. С помощью агента многоадресной рассылки и ведения журнала (wmsiislog.dll) можно написать пользовательский скрипт ASP или CGI для получения данных журнала.

Заметка

Вы можете получить те же функции, создав серверный список воспроизведения с помощью атрибута logURL.

 

Когда объект читателя отправляет журнал, он выполняет следующие действия:

  1. Отправляет пустой запрос GET на сервер.
  2. Анализирует ответ сервера для одной из следующих строк:
    • <body><h1>NetShow ISAPI Log Dll</h1>
    • <body><h1>WMS ISAPI Log Dll/0.0.0.0</h1>, где "0.0.0.0" является любым допустимым номером версии.
  3. Отправляет запрос POST с данными журнала.

В следующем коде показан пример скрипта ASP, который получает сведения о ведении журнала и записывает его в файл:

<html>
<body>
<h1>WMS ISAPI Log Dll/9.00.00.00.00</h1>
<%@ Language=VBScript %>
<%
  Dim temp, i, post, file, fso

  ' Convert the binary data to a string.
  For i = 1 To Request.TotalBytes
    temp = Request.BinaryRead(1)
    pose = pose & Chr(AscB(temp))
  Next

  Set fso = createobject("Scripting.FileSystemObject")
  Set file = fso.OpenTextFile("C:\log.txt", 8, TRUE)

  file.writeline Now
  file.writeline post
  file.writeBlankLines 2 
%>
</body>
</html>

Вы можете указать несколько серверов для получения сведений о ведении журнала; просто вызовите AddLoggingUrl один раз с каждым URL-адресом. Чтобы очистить список серверов, получающих журналы, вызовите метод IWMReaderNetworkConfig::ResetLoggingUrlList.

реализации сетевых функций

интерфейс IWMReaderAdvanced

интерфейс IWMReaderAdvanced2