2009-05-08 17 views
12

Ho un file swf che si collega a un server flash remoto e riceve alcuni dati. Per motivi di sicurezza, non posso rendere accessibile questo file swf, quindi non posso utilizzare il browser per eseguirlo. C'è un modo per eseguirlo sul lato server da un prompt dei comandi (sotto linux)?Come eseguire SWF senza browser (su un server Linux)?

+0

Mi piacerebbe davvero sapere se qualcuno conosce un modo per farlo anche! Ho bisogno di collegarmi frequentemente dal server e un browser non sarà mai un'opzione - il server non ha GUI e dovrebbe essere eseguito da cron. – JAL

risposta

9

È possibile utilizzare Xvfb o Xfake per eseguire un server X che non si interfaccia con l'hardware reale. Se non sono disponibili come pacchetti per la distribuzione, è possibile crearli dai sorgenti Xorg xserver.

(O usare Xvnc suggerimento di MarkR.)

Il plugin Adobe utilizzato per spedire con un eseguibile autonomo denominato flashplayer o gflashplayer, che era al di fuori utilizzabile del browser. Penso che esista ancora, ma è nel pacchetto degli sviluppatori, o qualcosa del genere.

Se si utilizza un'implementazione gratuita di Flash, sia Gnash che Swfdec sono dotati rispettivamente di eseguibili autonomi gnash e swfdec.

Questo inizia Xvfb in mostra: 20 (solo assicurarsi di scegliere un numero che non è in uso; schermi normali partono da :0, X inoltro ssh s' alloca tipicamente :10 e su, e ho visto alcuni Xvnc configurazioni iniziano a :90), e corre gnash all'interno di esso:

startx /usr/bin/gnash http://url.to/flash.swf -- /usr/bin/Xvfb :20 
1

È possibile rendere accessibile il Web SWF e proteggere la directory utilizzando i file .htaccess.

Vedere Apache .htaccess Tutorial per ulteriori informazioni.

Si potrebbe anche provare ffplay (ffplay -fs somefile.swf) per eseguire swf.

Modificato: Sembra che ffplay utilizzi SDL in modo che X non sia richiesto.

Ma non penso che questo sarebbe installato sul tuo server. YMMV

Aggiornato: non lasciare che la GUI non ti fermi in quello che puoi fare, se usi SSH guarda questo articolo come esportare il tuo display X sulla tua workstation locale. Trying to tunnel X over SSH

+0

Proverò ffplay, grazie. Voglio renderlo non accessibile per impedire il download di tale swf, quindi la protezione della cartella HTTP non è un'opzione (gli utenti devono comunque avere accesso a quella cartella in quanto hanno bisogno di dati da essa). – serg

1

Adobe Air?

Il problema principale è il prompt dei comandi, non la "accessibilità web". Se è possibile eseguire FireFox, sono sicuro che è possibile caricare il file per il percorso del file system. Sarei davvero sorpreso se fosse possibile eseguire roba SWF sulla riga di comando. Voglio dire, non che questo non sia possibile in linea di principio, è solo che il punto di SWF è in genere la visualizzazione di alcuni junk lampeggiante e saltante, quindi nessuno si preoccupa di scrivere strumenti da riga di comando per eseguirlo ...

PS. Presumo che tu sappia che è possibile eseguire FireFox su un server Linux, giusto? (Tutta la cosa di X Windows?)

+0

È un server web linux. Non c'è GUI. – serg

1

Si potrebbe facilmente (ish) scrivere un programma in C che implementa l'interfaccia del plugin netscape per interfacciarsi direttamente con Flash. Quello funzionerebbe.

Tuttavia, probabilmente richiederebbe comunque un server X per eseguire questa operazione: è possibile utilizzare XVnc o qualcosa per eseguire senza headless.

Non banale, ma funzionerebbe.

Il tuo requisito sembra un po 'strano - forse sarebbe un design più manutenibile per riscrivere il componente Flash in qualche altra lingua.

1

L'Ichabod di Adobe probabilmente risolverebbe il tuo problema, ma non riesco a trovare alcuna informazione se è disponibile per il consumo pubblico, o solo per i provider di ricerca. Solo un'eco camera di articoli come uno su ReadWriteWeb.

2

Se si utilizza Ubuntu, tipo sudo apt-get install xvfb, e quindi scaricare il flashplayer da Adobe, e cercano solo come questo, funziona bene:

xvfb-run ./flashplayer test.swf 

Oppure, se si utilizza Windows, è sufficiente fare doppio clic sul file SWF sul server ed è in esecuzione ora, in comunicazione con altri server, basta utilizzare questo swf come parte del server, calcolare il valore e restituire, ciclo di esecuzione swf per mai come è un server

0

Il modo migliore è installare "Macromedia Flash Player MX" via Wine .. Installa Macromedia MX insieme a "Macromedia Flash Player" .. Ora basta andare nel tuo file SWF e cambiare la sua applicazione predefinita in "Macromedia Flash Player" (non Macromedia MX)

Problemi correlati