PDA

Просмотр полной версии : AMFPHP и headers


sergeik81
23.02.2010, 17:51
Возник вопрос скорее не практического, а теоретического свойства.
Пытаюсь разобраться с AMFPHP и вижу там, что используются различные хедеры, которые берутся при десериализации. В частности вот такие - DescribeService, Credentials, amf_server_debug и так далее. Но никак не могу понять, кто посылает именно такие хедеры? Как понимаю, то при работе с RemoteObject все в итоге сводится к NetConnection и его методу call. У него так же есть метод addHeader который и вставляет подобные хелеры, скорее всего(ну это я так думаю). Но нигде не могу найти, где прописываются именно такие хедеры. Может кто знает?

wvxvw
23.02.2010, 18:58
Я думаю, что это должно быть описано в AMF спецификации:
http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf
Посмотрите четвертый пункт.

sergeik81
23.02.2010, 20:36
Увы, но там ничего нету об этом. Возможно, что эти заголовки можно отсылать только используя NetConnection напрямую, тогда непонятно, зачем использовать RemoteObject? Более того, в сорсах совсем не нашел, где используются хедеры, которые прописываются во флексе самом в классе AbstractMessage. Хотя тут возможно, что дело в том, что amfphp давно заброшен. Попробую посмотреть другие реализации - на том же java

wvxvw
24.02.2010, 00:24
Возможно, что эти заголовки можно отсылать только используя NetConnection напрямую
Боюсь, что NetConnection сам их и отсылает, вас об этом не спрашивая.
тогда непонятно, зачем использовать RemoteObject
Мне это тоже никогда не было понятно, на мой неопытный взгляд, это просто архитектурное излишество.
Более того, в сорсах совсем не нашел, где используются хедеры, которые прописываются во флексе самом в классе AbstractMessage
Боюсь, что нигде не используются т.как см. пункт первый. Кстати, просмотрел этот класс на наличие каких-то хидеров - ничего там не нашел... об чем речь? :)
amfphp давно заброшен
AMFPHP живет и здравствует, готовится к выходу верия 2.0, нашлись люди, которым оказалось не по душе, чего Arnold Wade (не путать с Vader!) с ним учудил. В SVN лежит пропатченая версия совмесимая с PHP 5. И по-тихоньку продолжается разработка.

sergeik81
24.02.2010, 13:07
Боюсь, что NetConnection сам их и отсылает, вас об этом не спрашивая.

Какие-то да, но такой как DescribeService уж слишком на кастомный походит или тот же amf_server_debug - согласитесь, что вряд ли адобовские разработчики позаботились о том, что такой хедер с таким названием будет отсылать сам NetConnection по умолчанию. Все бы ничего, но в AMFPHP они используются для отдельных нужд. Создается впечатление, что они берутся из воздуха, а когда что-то берется из воздуха, то где-то должен быть подвох-))

Кстати, просмотрел этот класс на наличие каких-то хидеров - ничего там не нашел... об чем речь? :)
Там в самом начале идет объявление статических констант типа этого REMOTE_CREDENTIALS_HEADER и когда формируется message, который отправляется NetConnection, то подобные вещи засовываются в массив message.headers, но вот в amfphp они нигде не вытаскиваются. Возможно, что это сделано только для BlazeDS или LiveCycle. Надо смотреть код того же BlazeDS, видимо

AMFPHP живет и здравствует, готовится к выходу верия 2.0, нашлись люди, которым оказалось не по душе, чего Arnold Wade (не путать с Vader!) с ним учудил. В SVN лежит пропатченая версия совмесимая с PHP 5. И по-тихоньку продолжается разработка.
Спасибо за наводку, буду посмотреть

wvxvw
24.02.2010, 17:13
REMOTE_CREDENTIALS_HEADER - это, на сколько я знаю, нужно для Zend_Auth, для AMF как такового оно не нужно. А по поводу остального - ну так воспользуйтесь Charles proxy и посмотрите, что NetConnection отсылает, я практически уверен, что заголовки нужные для AMF он сам и формирует.