Mostrando postagens com marcador AS. Mostrar todas as postagens
Mostrando postagens com marcador AS. Mostrar todas as postagens

sábado, 18 de outubro de 2008

Tutorial RED5 Parte 2

Parte 2 Desenvolvendo aplicação Demo


Continuando o Tutorial vou ensinar a criar uma nova aplicação, para referência pode-se usar os tutorias do flashExtensions da ultima postagem http://www.flashextensions.com/tutorials.php O migration guide http://www.joachim-bauch.de/tutorials/red5/MigrationGuide.txt e o HOW TO build new applications http://www.joachim-bauch.de/tutorials/red5/HOWTO-NewApplications.txt


Para IDE eu sugiro o Eclipse mas se vc quiser criar na Unha(nesse caso te invejo ) ou usando NETbeans ou o que seja sinta-se a vontade


A forma mais simples de se criar uma aplicação e copiando outra, geralmente há a aplicação test, copia e renomeie para o nome que qusier neste caso usaremos o nome exemplo


Estrutura de pastas


Na pasta webapps estará todas as suas aplicações por hora


Cada aplicação Deve/pode ter a pasta WEB-INF e Streams(Pode ter outro nome como podemos ver em outro tutorial)


Na WEB-INF teremos nosso binários e fontes dentro da WEB-INF temos lib,src,classes


Na lib colocaremos qlqr jar de referência que necessitarmos


Na classes teremos nossos binários


Na src nossos fontes (.java)


Desenvolvendo o Red5 com eclipse



  • Copie a pasta webapps/test ou crie uma nova pasta com o nome da sua aplicação no nosso caso exemplo,dentro da pasta devemos ter a pasta WEB-INF.Na WEB-INF devemos ter as pastas classes,streams e lib

  • No eclipse selecione o workspace para ser webapps e crie um novo projeto a partir do existente na pasta da aplicação

  • Na pasta do seu projeto clique com o botão direito,build path >configure build path clique em libraries, add external jars e adcione o red5.jar

  • Ainda em configure build path clique em source e vá em Default output folder e coloque a pasta WEB-INF/classes

  • clique com o direito WEB-INF/src>build path e va em use as source folder ou em configure build path novamente e coloque o WEB-INF/src como source folder, o icone deverá mudar

  • Crie um novo package algo como br.com.exemplo e nesse package crie uma classe com o nome de TesteExemplo


Agora preparamos o PROJETO vamos preparar os arquivos



Arquivos importantes


web.xml Arquivo principal de configuração copie-o do teste
Mudaremos algumas coisas procure a parte que diz
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>/test</param-value>
</context-param> e mude o test para exemplo isso dirá ao red5 como acessar nossa aplicação


red5-web.xml Esse arquivo é vital , uma leve adaptação dele será no futuro o que exportaremos para o tomcat, partes importantes dele são o bean com o id de web.scope e o bean com o id de web.handler


No bean web.scope nós temos coisas relevantes ao ACESSO a nossa aplicação, enquanto ela está rodando no red5 como um serviço podemos usar o arquivo red5-web.properties para estocar algumas variáveis(ainda não testei isso no Tomcat)


Caso optemos por usar variáveis nesse arquivo a referência a ela estará na parte do bean de id "placeholderConfig" onde o value é o caminho a apartir da nossa aplicação pro arquivo properties


Voltando ao web.scope nesta parte nos temos:


<property name="server" ref="red5.server" /> Referência ao servidor global do red5(não mecha)


<property name="parent" ref="global.scope" /> Escopo Pai normalmente é o global.scope


<property name="context" ref="web.context" /> Contexto desse escopo referencia o no com msm id


<property name="handler" ref="web.handler" /> Handler, ponto de entrada referência nó com o msm id


<property name="contextPath" value="${webapp.contextPath}" /> Nome de acesso da aplicação no nosso caso exemplo, o valor poderia ser "/exemplo" ou como está ${webapp.contextPath} nesse caso estamos puxando esse valor do red5-web.properties


<property name="virtualHosts" value="${webapp.virtualHosts}" /> Hosts de acesso novamente estamos referenciando o red5-web.properties são os servidores ao qual permitimos acesso a essa aplicação poderia ser por exemplo:
*,localhost, localhost, 127.0.0.1, localhost:1935


red5-web.properties Esse arquivo referênciado pela tag <bean id="placeholderConfig"> do red5-web.xml configura variáveis externas no nosso caso temos as variaveis contextPath e virtualHosts no caso, a sintaxe eh NOME_DA_VARIAVEL=VALOR e só, separe-as por new line , no nosso caso algo assim:


contextPath=/exemplo
virtualHosts= *,localhost, localhost, 127.0.0.1, localhost:1935


O bean de id web.handler diz onde está a classe que cuida das requisições(podemos ter services que seriam outras classes tbm mas por hora vamos apenas usar este handler) o atributo class diz onde está o caminho no package pra nossa aplicação por exemplo no nosso caso br.com.exemplo.TesteExemplo, e o atributo singleton diz se ele é um singleton(criado apenas uma vez) ou não



Agora podemos criar nossa aplicação estando tudo preparado


Desenvolvendo a aplicação propriamente dita


Na sua aplicação extenda org.red5.server.adapter.ApplicationAdapter provavelmente vc terá que exportar alguns jars que estarão em Red5/lib


Coloque um método público como soma do red5 algo como isso aqui:
public Double soma(Double num,Double outroNum){
return num+outroNum;
}


Terminamos a parte do servidor


Lado cliente da aplicação


Para os leigos em comunicação com servidor em flash nos usaremos a classe netConnection que fará uma conexão RTMP, que é o protocolo de acesso usado pelo Red5(tpo http,ftp,https etc), com o servidor abaixo o código comentado



nc = new NetConnection();//Cria o objeto
nc.connect("rtmp://localhost/exemplo");//Se conecta ao exemplo O nome que colocamos como acesso
nc.onStatus= function (obj){//Funcao que lida com a conexao
switch(obj.code){
case "NetConnection.Connect.Success"://Ao se conectar com sucesso chamamos o metodo
nc.call("soma", nc, 3.0, 2.5);
break;
default:
trace("Deu algum pal "+obj.code);
}
nc.onResult = function(obj) {
trace("Resultado: " + obj);//Recebemos o retorno do metodo deve imprimir 5.5
}


É isso ae qlqr duvida comentem, publicarei outras coisas sobre Red5 caso alguem leia ou peça

Tutorial RED5

Parte 1: Preparando o Terreno


Mto bem tentando retomar o blog que nunca foi realmente tomado e devolver alguma coisa pra comunidade de TI.


Vou tentar neste e nos próximos posts postar um tutorial de Red5


O que é o Red5?


Red5 é um servidorFlash server Open Source em JAVA que suporta:



  • Streaming Audio/Video (FLV e MP3)

  • Gravação de Client Streams (Só FLV)

  • Shared Objects

  • transmissão de stream ao vivo

  • AMF



Downloads


Primeiramente baixe o red5 em http://osflash.org/red5/red5downloads Tenha o JAVA 6 Instalado preferencialmente e por segurança baixe o ANT(Atualmente eu não preciso dele com Red50.7 no Windows XP)


Após baixar o ant coloque-o em uma pasta e SE quiser adicione ele nas variaveis de sistema


Munidos e Instalados de ANT,JAVA6 e Red5 vamos as variáveis


Variáveis de Ambiente


NO WINDOWS


Para setar qualquer variavel ou vá em Painel de Controle>Sistema>Avançado>Variaveis de Ambiente na área de váriavies de sistema clique em nova pra cada variável.


Ou vá no Prompt de comando


ANT


  1. Coloque ele onde bem Entender

  2. Adcione o caminho ate a pasta do ANT na variavel ANT_HOME

  3. No prompt digite algo como :set ANT_HOME=c:\ant

  4. TENHA CERTEZA DE NÃO SOBRESCREVER A VARIÁVEL PATH

  5. Adcione no FINAL de path o caminho até a pasta do bin dentro da pasta do ant

  6. No prompt de comando digite set PATH=%PATH%;%ANT_HOME%\bin



JAVA_HOME


  1. Encontre a pasta JDK no seu windows estará algo como C:\Arquivos de programas\Java\jdk1.6.0_05\

  2. Coloque esse valor na variável java_home no prompt digite set JAVA_HOME=C:\Arquivos de programas\Java\jdk1.6.0_05\


NO LINUX


ANT

No shell exporte as variáveis do ANT como dito acima



  1. export ANT_HOME=/usr/local/ant

  2. TENHA CERTEZA DE NÃO SOBRESCREVER A VARIÁVEL PATH

  3. export PATH=${PATH}:${ANT_HOME}/bin


Dependendo do linux os comandos serão



  1. setenv ANT_HOME /usr/local/ant

  2. TENHA CERTEZA DE NÃO SOBRESCREVER A VARIÁVEL PATH

  3. set path=( $path $ANT_HOME/bin )


JAVA_HOME


  • export JAVA_HOME=/usr/local/jdk-1.6.0.05

  • OU setenv JAVA_HOME /usr/local/jdk/jdk-1.6.0.05


Referência: http://ant.apache.org/manual/install.html


Se vc manja mais de inglês esse tutorial é fantástico pra td o que vou falar aqui: http://www.flashextensions.com/tutorials.php procure a aba do Red5 e mande bala