`
thesp2
  • 浏览: 54510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多余回车引起AMF INVALID_AMF_MESSAGE错误

阅读更多
最近使用PHP写AMF的service,本来好好的代码,忽然间就执行出现错误:
引用

message = "faultCode:INVALID_AMF_MESSAGE faultString:'Invalid AMF message'
'"
name = "Error"
rootCause = (null)

使用Google搜索到这个错误经常是使用某个函数错误导致,比如函数为定义。
另外通过实验,在函数里使用了echo、print等输出函数也会导致这个错误。
仔细观察错误内容,发现在错误信息应该是一个回车或者其他不可显示字符,但是我检查代码没发现有额外的echo之类的输出,不得已把整个类重新写,挨个方法复制进去实验,发现又好用了。通过文本比较,只是PHP脚本结束后多了2个空行:
<?php
...
?>
\n
\n

此时才恍然大悟,原来amfphp其实是把PHP脚本执行后的结果返回,这样的话,PHP文件结尾的2个空行就相当于echo '\n',追加到函数执行结果后面,自然导致AMF消息不正确。
分享到:
评论

相关推荐

    amf0_spec_121207.zip_amf0_amf0_spec_1212_player

    这个"amf0_spec_121207.zip_amf0_amf0_spec_1212_player"文件是关于AMF0规格的详细文档,特别针对Flash Player 8的实现进行了说明。在Flash Player 8的时代,AMF0被广泛用于构建富互联网应用程序(RIA),因为它能...

    amf3_spec_05_05_08.zip_AMF3_above flash player_player

    在标题“amf3_spec_05_05_08.zip_AMF3_above flash player_player”中,我们可以理解这是关于AMF3规范的一个版本,发布日期可能是2005年5月8日,主要针对Flash Player 9及以上版本。描述进一步说明了这是用于Flash ...

    AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf

    标题中的"AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf"表明这是一个关于AMF(Action Message Format)技术的压缩包,其中包含了FluorineFx的相关资料。FluorineFx是.NET平台上开源的Adobe Flash Remoting...

    amf3_spec_05_05_08.pdf

    Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可以用于在不同会话之间持久化和检索应用程序的公共状态,或者允许两个端点通过交换强类型数据...

    amf.zip_AMF_amf_python

    在Python中,处理AMF数据通常需要借助特定的库,这里提到的"amf.zip_AMF_amf_python"很可能是指一个针对Python 3.0及以上版本的AMF解析类库。 AMF数据格式有两种类型:AMF0(也称为AMF Lite)和AMF3,AMF3是AMF0的...

    amf3_spec amf3_spec

    Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可用于跨会话持久存储和检索应用程序的公共状态,或者允许两个端点通过交换强类型数据进行通信...

    ffmepg_AMF_ffnvcodec_gl_KHR.rar

    在本压缩包“ffmepg_AMF_ffnvcodec_gl_KHR.rar”中,主要涉及了FFmpeg与Advanced Media Framework (AMF)、FFmpeg的NVidia硬件编码库ffnvcodec以及OpenGL扩展KHR的相关内容。这些组件主要用于提高在Windows环境下,...

    GLRT_AMF_ACE程序源码matlab

    GLRT_AMF_ACE.m可能是实现这三种算法的核心代码文件。 AMF是信号检测的经典算法,主要用于检测已知形状但未知幅度和相位的信号。AMF通过与理想滤波器的匹配,最大限度地增强信号与噪声的功率比。ComputeAMFpfa.m...

    amf0_spec_121207

    Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可用于在不同会话之间持久化和检索应用程序的状态,或者允许两个终端通过交换强类型数据来通信...

    amfPHP-2.0.alpha1.zip_AMFPHP2.0_amf2.0_amfphp_amfphp 2.0_php amf

    AMF(Action Message Format)是一种二进制数据格式,由Adobe公司开发,用于在客户端(如Flash Player)和服务器之间传输数据,相比XML或JSON,AMF能提供更快的传输速度和更小的数据包大小,从而提高了应用程序的...

    29518-g00_AMF_5G规范_5G_

    标题中的“29518-g00_AMF_5G规范_5G_”指的是3GPP(第三代合作伙伴计划)的一个技术规范编号,通常3GPP的技术规范以这样的格式来标识,其中“29518”是该规范的序列号,用于区分不同的技术文档。“AMF”代表5G接入和...

    socket+AMF3

    AMF3(Action Message Format version 3)是Adobe公司推出的一种高效的数据序列化格式,主要用于Flash与服务器之间的数据交换。AMF3能够快速地将复杂的数据结构如对象、数组、日期等编码为二进制流,然后在网络中...

    amf_0112_服装行业质量手册包括所有程序文件(DOC86页).doc

    amf_0112_服装行业质量手册包括所有程序文件(DOC86页).doc

    asm.zip_asm my68-1d.amf_asm opencv_opencv ASM_opencv shape

    标题中的"asm.zip_asm my68-1d.amf_asm opencv_opencv ASM_opencv shape"揭示了这个压缩包文件包含的主要组件和技术。首先,"asm"通常指的是汇编语言或者与之相关的程序模块,而"my68-1d.amf"可能是特定于 Motorola ...

    amf0 原版文档 完整版

    AMF0,全称为Action Message Format 0,是Adobe Flex框架中的一个数据序列化协议,用于在客户端(如Flash Player)和服务器之间高效地传输数据。这个格式是AMF(Action Message Format)的第一个版本,主要设计用于...

    amf3协议解析的例子

    AMF3(Action Message Format version 3)协议是Adobe公司为Flash Player和Flex应用程序之间通信设计的一种二进制数据交换格式。它旨在提高数据传输效率,同时保持足够的灵活性以适应不同类型的复杂数据结构。AMF3...

    AMF数据分析器_V22

    支持AMF格式的通信封包编码、解码、向AMF服务端发送请求、返回AMF数据解析。 支持RTMP封包编码、解码。 支持Flex外部化类的AMF编码、解码。 支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF...

    DWF13_AMF_AUT_T0499.pdf

    从给定文件内容中可以提取出以下IT知识点: 1. 全景360 AVM (Automotive Vision Module) 方案的动机和应用背景: - 全景360度视图帮助驾驶员在缓慢行驶情况(如停车或转弯)下捕捉所有危险。 ...

    node_amf_cc:AMF的快速本机C ++实现(仅适用于AMF3)

    node_amf_cc 用C ++编写的NodeJS插件,可实现。 这实现了几乎所有AMF3功能,但对于长尾负载而言,性能至少提高了一个数量级。 作为“项目的一部分而编写。 安装: npm install node_amf_cc 用法: var amfcc = ...

    AMF.NET 文件极小的开源AMF解析库

    AMF.NET是一个小型而高效的开源库,专门用于处理Action Message Format (AMF)数据流。AMF是一种二进制的数据交换格式,常用于Flash、Flex和Adobe AIR等技术中的远程方法调用(RPC)和数据传输。FluorineFx是另一个...

Global site tag (gtag.js) - Google Analytics