El documentation for the AMF format de Adobe no parece realmente especificar la estructura de un mensaje AMF completo. Solo especifica el formato de los tipos de datos individuales. He leído la maldita cosa cinco veces y o bien me falta totalmente lo que debería contener un mensaje AMF real, o no está allí. ¿Alguien sabe de alguna documentación de la estructura real del mensaje completo?estructura de mensajes AMF?
Respuesta
La especificación podría describirse como "concisa".
La codificación AMF utiliza bytes que se denominan "marcadores de tipo". El marcador de tipo para un entero es el valor 4. Los datos enteros siguen inmediatamente a esta etiqueta, y tienen 1-4 bytes de longitud. La longitud varía porque el tipo entero está "comprimido", de modo que los valores 0-127 requieren solo 1 byte, mientras que los valores más grandes requieren más bytes. Este formato entero se llama "U29" por la especificación.
Como un ejemplo, si tuviéramos que pasar simplemente el número entero "5", un paquete de AMF válida sería estos dos bytes:
04 05
En aplicaciones que se encuentran en la web, los datos AMF es a veces precedida por una longitud codificada como un largo sin signo en orden de bytes de red. Si estaba observando una aplicación de este tipo, puede ver:
00 00 00 02 04 05
, donde 00 00 00 02
indica que los siguientes datos AMF tienen 2 bytes de longitud.
Ahora, supongamos que envíen un objeto después de que tenía el siguiente constructor:
this.ui = "button_press"; this.param = 5;
entonces podemos ver lo siguiente en los datos AMF:
0A
- etiqueta del objeto
2B
- u29o-val: 2 miembros sellados, objeto con rasgos y datos, posiblemente miembros dinámicos
01
- cadena vacía - objeto anónimo
05
- cadena-por-valor, longitud de la cadena: 2
75 69
- 'ui'
0B
- cadena-por-valor, longitud de la cadena: 5
70 61 72 61 6D
- 'PARAM'
19
- cadena por valor , longitud de la cadena: 12
62 75 74 74 6F 6E 5F 70 72 65 73 73
- 'BUTTON_PRESS'
04
- número entero
05
- valor de número entero: 5
01
- nombre vacío, termina lista vacía de mí dinámico mbers este objeto
Dado que el paquete tendrá 28 bytes, puede que tenga el prefijo: 00 00 00 1C
cuando se encuentre en la naturaleza.
Otra posibilidad a tener en cuenta es que las comunicaciones AMF pueden comprimirse, normalmente utilizando la compresión "desinflar" disponible en zlib.
Espero que esto te ayude a resolver la especificación, pero si tienes preguntas, intentaría responderlas.
Si usted está buscando para la comunicación remota estructura del mensaje que se añade al final de la AMF0 spec - Sección 4
También puede ir a través de wiki http://en.wikipedia.org/wiki/Action_Message_Format Se ha necesitado suficiente información.
Gracias, Rajesh.
- 1. Leer un objeto AMF con conector flexible
- 2. AMF y Cross Site scripting vulnerabilty confusion
- 3. estructura y la forma de URL mensajes con el frasco
- 4. Estructura de datos utilizada para mensajes SMS en Android
- 5. ¿Vale la pena la compresión GZip con AMF
- 6. Estructura en una estructura
- 7. Los consumidores de mensajes de RabbitMQ dejan de consumir mensajes
- 8. Visualización de mensajes del marco de mensajes de Django
- 9. Estructura de Clojure anidada en otra estructura
- 10. rieles roscados mensajes privados
- 11. usa AMF en lugar de JSON en iPhone? (para servicios web)
- 12. ¿Cómo puedo depurar la serialización AMF (BlazeDS) de objetos Java en Actionscript?
- 13. Mensajes de línea múltiple en paquetes de mensajes
- 14. C estructura y C++ estructura
- 15. mensajes de error psycopg2
- 16. Android, Manejador de mensajes
- 17. Firemonkey - Gestión de mensajes
- 18. diálogos de mensajes simples
- 19. Detectando mensajes de tostado
- 20. Mensajes de confirmación adecuada
- 21. Captura de mensajes Win32
- 22. estructura sigaction error incompleto
- 23. uso no válido de matriz flexible-estructura de estructura flexible como miembro de otra estructura
- 24. Estructura de datos utilizada para la estructura de directorios?
- 25. Mejor estructura de la estructura del proyecto web de Java
- 26. Herramientas de estructura abierta o de estructura libre
- 27. pensamiento de cola de mensajes
- 28. Bucles de mensajes de Erlang
- 29. Formateo de mensajes de uso
- 30. Mensajes de reordenación de RabbitMQ
Gracias, muy útil. Realmente estaba esperando que en alguna parte haya una descripción BNF de un mensaje AMF válido completo, incluidos encabezados y demás; Pasé por el código para AMFPHP solo para ver qué hace cuando se está decodificando, y había muchas cosas allí que ni siquiera se insinuaban en la especificación real, y mucho menos que se describían en detalle. – dirtside