Ler em inglês

Compartilhar via


Registro em log do cliente (SDK do Windows Media Format 11)

Quando o objeto leitor lê dados de um servidor, ele envia informações de log para o servidor. Os provedores de conteúdo normalmente usam essas informações para medir a qualidade do serviço, gerar informações de cobrança ou acompanhar a publicidade. As informações de registro em log não contêm dados pessoais.

O aplicativo pode especificar algumas das informações registradas, chamando o método IWMReaderAdvanced::SetClientInfo no objeto reader. Por exemplo, você pode especificar a cadeia de caracteres de agente do usuário, o nome do aplicativo player ou a página da Web que hospeda o player.

As informações de log incluem um GUID que identifica a sessão. Por padrão, o leitor gera uma ID de sessão anônima. Opcionalmente, o leitor pode, em vez disso, enviar uma ID que identifique exclusivamente o usuário atual. Para habilitar esse recurso, chame o método IWMReaderAdvanced2::SetLogClientID com o valor TRUE.

Você pode configurar o objeto leitor para enviar as informações de log para outro servidor, além do servidor de origem. Para fazer isso, chame o método IWMReaderNetworkConfig::AddLoggingUrl com a URL do servidor. Essa URL deve apontar para um script ou executável que possa lidar com solicitações HTTP GET e POST. Você pode usar o Agente de Anúncio multicast e registro em log (wmsiislog.dll) ou pode escrever um script ASP ou CGI personalizado para receber os dados de log.

Observação

Você pode obter a mesma funcionalidade criando uma playlist do lado do servidor com um atributo logURL .

 

Quando o objeto reader envia o log, ele faz o seguinte:

  1. Envia uma solicitação GET vazia para o servidor.
  2. Analisa a resposta do servidor para uma das seguintes cadeias de caracteres:
    • <body><h1>NetShow ISAPI Log Dll</h1>
    • <body><h1>WMS ISAPI Log Dll/0.0.0.0</h1> em que "0.0.0.0" é qualquer número de versão válido.
  3. Envia uma solicitação POST com as informações de log.

O código a seguir mostra um script ASP de exemplo que recebe as informações de log e as grava em um arquivo:

<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>

Você pode especificar vários servidores para receber informações de log; basta chamar AddLoggingUrl uma vez com cada URL. Para limpar a lista de servidores que recebem logs, chame o método IWMReaderNetworkConfig::ResetLoggingUrlList .

Implementando a funcionalidade de rede

IWMReaderAdvanced Interface

IWMReaderAdvanced2 Interface