2009-05-08 22 views
12

Tengo un archivo swf que se conecta a un servidor flash remoto y recibe algunos datos. Por razones de seguridad, no puedo hacer que este archivo swf sea accesible, así que no puedo usar el navegador para ejecutarlo. ¿Hay alguna forma de ejecutarlo desde el lado del servidor desde un símbolo del sistema (en Linux)?¿Cómo ejecutar SWF sin un navegador (en un servidor Linux)?

+0

¡Realmente me gustaría saber si alguien sabe de una manera de hacer esto, también! Necesito conectarme frecuentemente desde el servidor y un navegador nunca será una opción: el servidor no tiene GUI y debe ejecutarse desde cron. – JAL

Respuesta

9

Puede usar Xvfb o Xfake para ejecutar un servidor X que no tiene interfaz con el hardware real. Si no están disponibles como paquetes para su distribución, puede compilarlos a partir de los orígenes Xserver de Xorg.

(O utilice Xvnc sugerencia de MarkR.)

El plug-in de Adobe utilizado para enviar con un ejecutable independiente llamado flashplayer o gflashplayer, que estaba fuera utilizable del navegador. Creo que todavía existe, pero está en el paquete de desarrollador, o algo así.

Si está utilizando una implementación gratuita de Flash, tanto Gnash como Swfdec vienen con ejecutables independientes gnash y swfdec respectivamente.

Esto comienza Xvfb en la pantalla: 20 (sólo asegúrese de elegir un número que no está en uso, las pantallas normales comienzan en :0, el reenvío de X ssh 's normalmente asigna :10 y arriba, y he visto algunos Xvnc configuraciones comienzan en :90), y se ejecuta gnash dentro de ella:

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

Puede hacer que la web SWF esté accesible y proteger el directorio con los archivos .htaccess.

Consulte Apache .htaccess Tutorial para obtener más información.

También puede probar ffplay (ffplay -fs somefile.swf) para ejecutar el archivo swf.

Editado: Parece que ffplay usa SDL, por lo que X puede no ser necesario.

Pero no creo que esto se haya instalado en su servidor. YMMV

Actualizado: No dejes que la GUI no te detenga en lo que puedes hacer, si usas SSH mira este artículo cómo exportar tu pantalla X a tu estación de trabajo local. Trying to tunnel X over SSH

+0

Voy a probar ffplay, gracias. Quiero que no sea accesible para evitar la descarga de ese archivo swf, por lo que proteger la carpeta http no es una opción (los usuarios deben tener acceso a esa carpeta de todos modos, ya que necesitan datos de ella). – serg

1

Adobe Air?

El principal problema es el símbolo del sistema, no la "accesibilidad web". Si puede ejecutar FireFox, estoy seguro de que puede cargar el archivo por la ruta del sistema de archivos. Me sorprendería mucho si fuera posible ejecutar material SWF en la línea de comandos. Quiero decir, no es que esto no sea posible en principio, es solo que el objetivo de SWF es mostrar algunos elementos que parpadean y saltan, por lo que nadie se molesta en escribir herramientas de línea de comandos para ejecutarlo ...

PS. Supongo que eres consciente del hecho de que puedes ejecutar FireFox en un servidor Linux, ¿verdad? (¿Toda la cosa de Windows X?)

+0

Es un servidor web de Linux. No hay GUI. – serg

1

Podría escribir fácilmente (ish) un programa C que implemente la interfaz del complemento netscape para interactuar directamente con Flash. Eso funcionaria.

Sin embargo, probablemente todavía requeriría un servidor X para hacer esto: podría usar XVnc o algo así para ejecutar sin cabeza.

No trivial, pero funcionaría.

Su requisito suena un poco extraño, tal vez sería un diseño más fácil de mantener para reescribir el componente Flash en otro idioma.

1

Ichabod de Adobe probablemente resolvería su problema, pero parece que no puedo encontrar ninguna información si está disponible para el consumo público o solo para proveedores de búsqueda. Sólo una cámara de eco de artículos como uno en ReadWriteWeb.

2

Si utiliza Ubuntu, tipo sudo apt-get install xvfb, y luego descargar el reproductor flash de Adobe y que sólo trata de este tipo, que funcione bien:

xvfb-run ./flashplayer test.swf 

O si usa Windows, puede simplemente hacer doble clic en el swf en el servidor, y ejecutarlo ahora, la comunicación con otro servidor, simplemente use este swf como parte del servidor, calcule el valor y regrese, swf run loop for ya que es un servidor

0

La mejor manera es instalar "Macromedia Flash Player MX" a través de Wine ... Instalará Macromedia MX junto con "Macromedia Flash Player" .. Ahora solo vaya a su archivo swf y cambie su aplicación predeterminada a "Macromedia Flash Player" (no Macromedia MX)

Cuestiones relacionadas