Поделиться через


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

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

Приложение может указать некоторые сведения, которые регистрируются в журнале, вызвав метод 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