Estou com uma idéia de projeto interessante e esta semana comecei a pesquisar as plataformas que poderiam atender essa idéia. Comecei com famoso AMFPHP.
Baixei a versão mais recente e fui assistir uma palestra de introdução ao AMF, mas logo num teste dos mais básicos, ao Flash tentar chamar um método do PHP acontece o erro, maldito erro!
Error #2044: Unhandled NetStatusEvent: level=error, code=NetConnection.Call.BadVersion
Tá bom, Unhandled NetStatusEvent é solucionável, basta adcionar um listener pro NET_STATUS, mas realmente acontece um erro de NetConnection. Procurando pelos fóruns, não se encontra uma solução racional, simplesmente em cada incidência do erro é apontada uma solução diferente.
Eu tentei trocar nomes de classes, conferir urls e paths, desinstalar e instalar módulos do apache, do php, e nada.
O que funcionou pra mim foi baixar uma versão anterior à última: amfphp-1.9.beta.20080120, seguindo a dica do Danilo Castilho {ASDevs}. Ainda não sei o porque da versão mais recente ter esse problema, mas pretendo descobrir.
Mas outras soluções podem ser:
- Tirar espaços em branco, antes e depois das tags php.
- Comentar a linha “
$gateway->disableStandalonePlayer();” no gateway.php, que impede a comunicação quando se está usando por um player isolado.
- Problemas com a versão do encoding de AMF usado: myService.objectEncoding = ObjectEncoding.AMF0; // .AMF3