Un saluto a tutti...
Scusate ma per descrivere il mio problema mi dovrò dilungare un pò...
Sto sviluppando su un sistema integrato che comprende un minimac, sul quale c'è un app che che invia dati OSC ad un server socket sulla stessa macchina.
Questo Server socket è un app per osx chiamata OSCar, che riceve i dati OSC su una porta e li reindirizza incapsulati in xml su un'altra porta alla quale si connetterà flash via XMLSocket.
L'altro elemento del sistema integrato è una macchina linux, sulla quale gira un swf.
L'swf è contenuto in una pagina html aperta da browser via http (quindi il contensto è quello di un web server).
Per testare con flashbuilder imposto l'indirizzo di output nel debug config come localhost/nome_progetto.
I risultati sono i seguenti:
1) Windows, lanciando la pagina da file system, o compilando una versione dell'app in Air, la connessione avviene senza problemi.
2) Linux, Windows, lanciando la pagina via http, viene violata la sandbox.
Nella stessa cartella del file swf è presente il file crossdomain.xml che da i permessi sulla porta giusta e a tutti gli ip.
Nella root del sito della macchina dove risiede l'swf ci sono i file crossdomain.xml e crossdomain-request.xml.
So che queste connessioni hanno bisogno di un'autorizzazione che avviene in questo modo:
1) flash richiede al server i permessi sulla porta 843
2) Il server risponde con il crossdomain-request.xml
3) Da questo momento il flash player riconosce l'ip del server come attendibile.
Questo, però implica uno sviluppo sulla macchina dove risiede il server.
Vorrei sapere se è possibile, magari temite AS3 (loadPolicyFile, etc...), bypassare qeusto passaggio, e come.
Ad ora l'unica soluzione che mi viene in mente e sviluppare un demone lato server che invia sulla 843 questo corssdomain-reqeust.xml, ma di fatto non mi è possibile realizzarlo.
Scusate se la richiesta è un pò lunga.
Grazie per l'aiuto.
Marcello

Rispondi quotando