RESOLVIDO.
Vou postar aqui vai que algum azarado como eu passe por isso...
Na verdade a solução é um workaround, mas vamos lá pois ela funciona muito
bem.
As tecnologias empregadas são Flex e PHP como backend.
Recapitulando, minha aplicação está uma rede X e tenho usuários de uma rede
Y fora da rede X, logo os usuários da rede Y acessam via IP diferente dos
usuários da rede X, é o que chamamos de IP Nateado.
O problema é que no services.xml está apontado para um único IP.
Teste as sugestões postadas como usar subdomínio sem usar o IP, mas isto não
funciona. A estratégia que fiz foi criar um novo channel com o IP diferente,
e na inicialização da aplicação, eu verifico qual a URL que o cliente está
acessando e daí alterno o channel.
O services.xml ficou assim:
<services-config>
<services>
<service id="amfphp-flashremoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<destination id="amfphp">
<channels>
<channel ref="my-amfphp"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
<destination id="amfphp2">
<channels>
<channel ref="my-amfphp2"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
</service>
</services>
<channels>
<channel-definition id="my-amfphp"
class="mx.messaging.channels.AMFChannel">
<endpoint uri="http:/X/amfphp/gateway.php"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
<channel-definition id="my-amfphp2"
class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://Y/amfphp/gateway.php"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
</services-config>
Meu Remote Object:
<mx:RemoteObject id="ro" showBusyCursor="true" source="FileG.FileSet"
destination="amfphp">
<mx:method name="teste" result="result(event)"
fault="resultError(event)"/>
</mx:RemoteObject>
No init da apliacação:
private function init():void{
var myArray:Array = mx.core.Application.application.url.split("/");
var domain:String = myArray[2].toString();
if ((domain!="")&&(domain!="X")){
ro.destination="amfphp2";
}
}
Bom, como este problema não é popular e deverá ocorrer a cada mil anos,
assim espero poupar o tempo de quem nos próximos 1000 anos irá se deparar
com ele.
Abraços.
Michel
2009/11/17 Rodrigo Barrocal <[email protected]>
>
> Aqui onde trabalho resolvemos problemas assim com DNS. não usamos IP,
> usamos por nome.
>
> Parece que você quer que um IP 200.*.*.* acesse um IP 10.*.*.* sendo
> que os dois não estão na mesma rede.
>
> Ou você faz a empresa do IP 200.*.*.* chegar por um VPN ou coloque o
> IP 10.*.*.* para um IP Externo e feche o acesso a essa IP por
> firewall....
>
> A vezes Aplicação não resolve tudo. você precisa de um rede bem
> configurada.
>
> On 16 nov, 16:28, Michel Fernandes <[email protected]> wrote:
> > Digitei errado Eduardo... Eu quis dizer exatamente o oposto, faltou um
> > não...
> >
> > Abraço.
> >
> > 2009/11/16 Eduardo Kraus <[email protected]>
> >
> > > "mas sua solução deu certo, infelizmente"
> >
> > > Não entendi!
> >
> > > 2009/11/16 Michel Fernandes <[email protected]>
> >
> > > Eduardo, agora tive tempo de retomar aquele problema, mas sua solução
> deu
> > >> certo, infelizmente...
> >
> > >> error NetConnection.Call.BadVersion: : url: 'http:/amfphp/gateway.php'
> >
> > >> Ele está entendendo que antes do /amfphp/gateway.php vem o http e aí
> não
> > >> funciona...:-(
> >
> > >> Mais alguma idéia?
> >
> > >> Obrigado.
> >
> > >> 2009/11/5 Michel Fernandes <[email protected]>
> >
> > >> Vou testar, mas te antemão, me parece que irá funcionar!
> >
> > >>> Obrigado!
> >
> > >>> 2009/11/4 Eduardo Kraus <[email protected]>
> >
> > >>> Configura o services.xml para apontar url relativa.
> >
> > >>>> Esta assim:
> > >>>>http://10.1.5.25/aplicacao/amfphp/gateway.php
> > >>>> Muda para assim:
> > >>>> /aplicacao/amfphp/gateway.php
> > >>>> *
> > >>>> Eduardo Kraus*
> > >>>> Desenvolvedor
> > >>>> [email protected]
> > >>>> blog.mxml.com.br
> > >>>>www.twitter.com/EduardoKraus
> >
> > >>>> 2009/11/4 Michel Fernandes <[email protected]>
> >
> > >>>>> Pessoal, boa tarde.
> >
> > >>>>> Agora estou com um problemão e sem nenhum POG para pensar agora.
> > >>>>> Minha aplicação roda na rede corporativa, mas existe uma outra
> empresa
> > >>>>> que acessa a minha rede, porém como estão em redes distintas, eles
> > >>>>> acessam via um endereço que o IP é diferente (nateado).
> > >>>>> O meu problema é que todos os endereços do AMFPHP e do PHP (conexão
> > >>>>> com o banco) está apontado para o endereço da corporativa. Agora
> como
> > >>>>> faço para que os 2 ips consigam acessar, já que no services.xml do
> AMF
> > >>>>> está setado para 1 IP?
> >
> > >>>>> Abraços.
> >
> > >>>>> Michel
> --~--~---------~--~----~------------~-------~--~----~
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> -~----------~----~----~----~------~----~------~--~---
>
>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev