Imprimir esta página Imprimir esta página Enviar a página a uma amigo Enviar a página a uma amigo

Enquete para TVD

Aplicação de Enquete para TV Digital utilizando Canal de Interatividade

Uma das grandes dificuldades relatadas pelos desenvolvedores NCL/Lua é a utilização do módulo tcp da biblioteca NCLua, que permite fazer conexões TCP. Assim, estou disponibilizando uma aplicação de enquete, que utiliza tal módulo, por intermédio da classe tcp implementada pelo Francisco da PUC-Rio.

A aplicação permite que o usuário (telespectador) vote em uma enquete, escolhendo uma das opções “Sim” ou “Não”. O voto é enviado para o servidor web em http://manoelcampos.com. O registro do voto é feito pela página index.php que contabiliza os votos em arquivos de texto. Após o usuário enviar seu voto, o resultado da votação é exibido ao usuário. O código da página index.php também está disponível no pacote para download, no final do artigo.

O sistema utiliza a biblioteca tcp.lua disponível aqui (já inclusa no arquivo para download).

O vídeo disponibilizado possui licença Creative Commons e foi obtido neste endereço.

O sistema foi separado em duas versões (disponíveis no mesmo arquivo para download). Uma obtém o resultado diretamente da página PHP e exibe o mesmo. A outra versão possui o arquivo votacao2.php que, ao invés de gerar código HTML como retorno, gera código lua para criação de uma table. A aplicação carrega esse código Lua retornado para criar a table. Assim, ela pode acessar os dados de forma estruturada, dando flexibilidade para que os mesmos possam ser formatados para exibição, da forma que o desenvolvedor desejar.

Os códigos fonte NCL e Lua estão comentados para melhor entendimento.

Detalhes de Implementação

A versão que acessa diretamente a página php para exibição do resultado da votação tem uma pequena particularidade, que ocorre pelo menos no Ginga Virtual STB, que precisa ser observada.

A página de votação desta versão é a index.php, sendo a página default no diretório votacao no servidor web. No código NCL precisamos inserir uma mídia para exibir o conteúdo desta página, de forma direta. No entanto, se inserirmos a mídia para o endereço http://manoelcampos.com/votacao/index.php, mesmo definindo o tipo de mídia no NCL como text/html, a aplicação não renderiza o HTML, exibindo o código na tela. Assim, para evitar tal problema, a mídia deve apontar para o endereço http://manoelcampos.com/votacao/, sem indicar o index.php, como mostrado a seguir:

<media id="result" src="http://manoelcampos.com/votacao/" descriptor="dResult" type="text/html"/>

Isto provavelmente é um bug do Ginga Virtual STB.

Pré-Requisitos

É recomendado a utilização do Ginga Virtual STB 0.11.2 rev 23 ou superior. A versão anterior do Ginga VSTB possuia algumas dificuldades para acesso à rede a partir da VM, normalmente necessitando de configurações na interface de rede da mesma.

Antes de usar a aplicação na VM, verifique se a mesma está acessando a rede local/internet (usando ping, telnet, wget, curl ou qualquer comando similar). Para isto, fundamentalmente, na tela inicial da VM deve ser exibido o IP da mesma. Caso não esteja conseguindo acesso à rede, tente alterar o modo da interface de rede da VM de bridge para NAT ou vice-versa (é necessário reiniciar a VM após tal alteração).

Downloads

Title: Sistema de Enquete para TV Digital
Caption: Acesso ao canal de interatividade e integração com página PHP.
File: enquete-tvd.zip
Size: 3 MB

Licença


Outros Projetos

Veja outros projetos de TV Digital aqui.