Я хочу загрузить удаленный SharedObject с сервера FMS через RTMP

Я хотел бы связаться с сервером FMS через скрипт и загрузить постоянный удаленный SharedObject.

Программа Flash подключается к серверу FMS, открывает NetConnection, выполняет вызов SharedObject.getRemote. Я хотел бы получить доступ к этой информации через PHP, Ruby, Perl и т. Д. Для работы с скриптом.

Я понимаю, что эта информация отправляется проигрывателю Flash как объект AMF по протоколу RTMP. Поскольку это RTMP, а не HTTP, я не могу использовать, например, клиент SabreAMF, поскольку он использует cURL, который не поддерживает RTMP.

У кого-нибудь есть идеи, как это сделать?


person JAL    schedule 03.05.2009    source источник


Ответы (2)


SharedObject - это, по сути, просто набор ключей / значений. Все, что вам нужно сделать, это выполнить вызов через Flash, прослушать событие обновления, выполнить итерацию по всем свойствам SharedObject и записать их в собственный объект - словарь или просто тип объекта. Затем вы можете отправить это на свой Sabre AMF Gateway, независимо от того, какой тип PHP использует для этого.

person Johan Öbrink    schedule 04.05.2009
comment
Спасибо, я думаю, что проще всего было бы написать свой собственный SWF, который подключает и загружает общий объект, и помещает его в форму, с которой я могу работать с PHP. Однако я надеялся получить что-то, что делает это в сценарии - можно ли запускать SWF-файлы из командной строки? - person JAL; 05.05.2009
comment
Насколько мне известно, нет. Если вам нужно что-то, что работает постоянно, вы можете создать приложение AIR, которое сделает эту работу за вас. Также есть возможность настроить Red5 Server, но тогда вам придется писать код на Java. Если вы используете AIR, я предлагаю вам создать его в Flex и использовать профилировщик памяти, чтобы избежать утечек памяти, которые приводят к сбоям. Узнайте больше об AIR и памяти на allyourbase -tech.blogspot.com/2008/08/ - person Johan Öbrink; 05.05.2009

Извините, у меня нет опыта работы с SabreAMF, поэтому то, что я собираюсь сказать, не очень поможет.

Разве вы не можете использовать swf в качестве прокси / моста от SabreAMF к Ruby? получить удаленный объект из swf и, когда у вас есть данные, передать их на предпочитаемый вами язык сервера (Ruby и т. д.)?

person George Profenza    schedule 03.05.2009
comment
Спасибо за ваши размышления. Я хотел бы сделать именно это, но я обнаружил, что клиент Sabre использует curl, который не поддерживает RTMP. Если бы это было так, я мог бы получить объект AMF, и он превратил бы его в объект PHP для меня или что-то еще. - person JAL; 04.05.2009
comment
Без проблем. Чтобы я не смог дать вам решение, мне следует удалить свой ответ? - person George Profenza; 04.05.2009
comment
Я думаю, вы на правильном пути, и сначала я не совсем понял! Я никогда не делал SWF, но это могло быть ключевым моментом. - person JAL; 05.05.2009