• Registrati
Benvenuto su codeinvaders.net la community italiana dedicata agli sviluppatori!
Puoi partecipare alle discussioni anche attraverso facebook, twitter e google+.
JS Day
  • google plus
  • facebook
  • twitter
Codeinvaders.net, domande e risposte per sviluppatori!
Partecipa a questa community rispettando tutti i suoi membri che, per il puro piacere di condividere, forniscono risposte e suggerimenti.
Classifica migliori utenti del mese 04/2017
  1. 4240 Punti

  2. 3980 Punti

  3. 3480 Punti

  4. Luca Rainone

    2400 Punti

I premi del mese
Posizione 1: Buono Amazon da 10 euro
Posizione 2: Sconto 40% su un libro O'Reilly

errore #2048 socket connetion - sandbox violation

Buongiorno a tutti,
vi illustro il mio problema ,
ho un socket server proxy che mi gira gira su localhost portata 5531
un web server Apache che gira anche esso in locale sula classica porta 80 sul quale c'è una pagina html con un applicazione flash con il flash flaplayer 10 .

L'applicazione flash si collega tramite una socket connection al server (http://127.0.0.1:5531)

Fintanto che la provo con il debug di flash o "prova filmato" tutto funziona correttamente, quando embeddo l' swf in una pagina html e la carico dal mio webserver in locale non fuziona più mi da errore 2048 sandbox vilation

ho già trovato e letto in rete un pò di documentazione sulle socket policy di adobe .... ma non riesco comunque a risolvere il mio problema.

Qualche anima pia che ha già affrontato l'argomento riesce a darmi un mano !

vi ringrazio

quesito posto 11 Aprile 2013 in actionscript da anonimo
   

1 Risposta

+1 voto
 
Risposta migliore

Da questo link http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

In pratica dovresti crearti un demone in ascolto sulla porta 843 che risponda a questo:

<policy-file-request/>

con questo

<cross-domain-policy>
   <site-control permitted-cross-domain-policies="master-only"/>
   <allow-access-from domain="swf.example.com" to-ports="5531" />
</cross-domain-policy>  

A scanso di equivoci questo è ciò che uso per un mio gioco funzionante (server in Haxe)

if (buf.readString(pos, cpos - pos) == "<policy-file-request/>") {
    var resp:String= '<cross-domain-policy><site-control permitted-cross-domain-policies="all"/><allow-access-from domain="*" to-ports="'+port+'" secure="false"/></cross-domain-policy>'+"\x00";
    sendToClient(c,resp);
    return null;
} 

Puoi anche gestire questa richiesta sulla tua porta originale (5531), ma in questo caso devi prima aspettare il fallback del flash player sulla porta 843… quindi subirai un ritardo di qualche secondo.

Non sono sicuro se puoi gestire la porta di default con un Security.loadPolicyFile(), vedi un po'… non ho avuto modo di approfondire: nel mio gioco aspettavo il fallback.

Ricorda che alla fine della stringa devi inviare un byte null \00.

risposta inviata 12 Aprile 2013 da Luca Rainone (2,400 punti)
modificato 12 Aprile 2013 da Luca Rainone
si', solo vorrei ricordare che nei sistemi unix like la porta 843 va gestita coi privilegi di root, vale per tutte le porte minore-uguale a 1024.
Questo infatti e' anche uno dei motivi che porta a preferire il fallback.
Puoi partecipare alle discussioni anche attraverso facebook e twitter.
...