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

Nenhum comentário:
Postar um comentário