У меня есть swf файл, который подключается к удаленному флэш-серверу и получает некоторые данные. По соображениям безопасности я не могу сделать эту веб-страницу swf доступной, поэтому я не могу использовать браузер для ее запуска. Есть ли способ запустить его на стороне сервера из командной строки (под Linux)?
Как запустить SWF без браузера (на сервере Linux)?
Ответ 1
Вы можете использовать Xvfb
или Xfake
для запуска X-сервера, который не взаимодействует с реальным оборудованием. Если они недоступны в качестве пакетов для вашего дистрибутива, вы можете построить их из источников Xorg xorg.
(Или используйте предложение MarkR Xvnc
.)
Плагин Adobe используется для отправки с автономным исполняемым файлом с именем flashplayer
или gflashplayer
, который можно использовать вне браузера. Я думаю, что он все еще существует, но находится в пакете разработчика или что-то в этом роде.
Если вы используете бесплатную реализацию Flash, как Gnash, так и Swfdec поставляются с автономными gnash
и swfdec
исполняемыми файлами соответственно.
Начнется отображение Xvfb
на дисплее: 20 (просто убедитесь, что выбрали номер, который не используется, нормальные отображения начинаются с :0
, ssh
Пересылка X обычно выделяет :10
и вверх, и я некоторые настройки Xvnc
начинаются с :90
) и запускаются gnash
внутри него:
startx /usr/bin/gnash http://url.to/flash.swf -- /usr/bin/Xvfb :20
Ответ 2
Если вы используете ubuntu, введите sudo apt-get install xvfb
, а затем загрузите flashplayer из adobe и просто попробуйте вот так: он работает хорошо:
xvfb-run ./flashplayer test.swf
Или, если вы используете окна, вы можете просто дважды щелкнуть swf на сервере, и теперь он работает, обмениваясь с другим сервером, просто используйте этот swf как часть сервера, вычислите значение и return, swf run loop for ever как это сервер
Ответ 3
Вы можете сделать SWF-сеть доступной и защитить каталог, используя файлы .htaccess.
Подробнее см. Apache.htaccess Tutorial.
Вы также можете попробовать ffplay (ffplay -fs somefile.swf) для запуска swf.
Отредактировано: похоже, что ffplay использует SDL, поэтому X не требуется.
Но я не думаю, что это будет установлено на вашем сервере. YMMV
Обновлено: не позволяйте графическому интерфейсу no останавливать вас в том, что вы можете сделать, если вы используете SSH, посмотрите на эту статью, как экспортировать свой X-дисплей на локальную рабочую станцию. Попытка туннеля X через SSH
Ответ 4
Adobe Air?
Основная проблема - это командная строка, а не "веб-доступность". Если вы можете запустить FireFox, я уверен, что вы можете загрузить файл по пути файловой системы. Я был бы очень удивлен, если бы можно было запустить SWF файл в командной строке. Я имею в виду, что это не возможно в принципе, это просто, что точка SWF обычно отображает некоторый мигающий и прыгающий мусор, поэтому никто не хочет писать инструменты командной строки для его запуска...
PS. Я предполагаю, что вам известно о том, что вы можете запускать FireFox на сервере Linux, верно? (Вся X Windows thingie?)
Ответ 5
Вы можете легко (ish) написать программу C, которая реализует интерфейс плагина netscape для непосредственного взаимодействия с Flash. Это сработает.
Однако для этого, вероятно, потребуется X-сервер - вы можете использовать XVnc или что-то, что можно использовать без головок.
Нетривиальный, но будет работать.
Ваше требование звучит немного странно - возможно, более удобной конструкцией будет переписать компонент Flash на каком-то другом языке.
Ответ 6
Adobe Ichabod, вероятно, решит вашу проблему, но я не могу найти какую-либо информацию о ее доступности для общественного потребления или просто для поставщиков поиска. Просто эхо-камера статей, похожих на ReadWriteWeb.
Ответ 7
Лучший способ - установить "Macromedia Flash Player MX" через Wine.. Он установит Macromedia MX вместе с "Macromedia Flash Player". Теперь просто перейдите в свой swf файл и измените его приложение по умолчанию на "Macromedia Flash Player" ( не Macromedia MX)