AMFPHP最新1.9(非beta)bytearray的序列化bug
sshong 发表于2010年5月5日 09:46:00 更新于2010年5月5日 09:46:00
好久前就知道amfphp突然出了个新版(一度以为不会再维护了),从1.9beta到了1.9,而这次发布也是在beta两年后。

昨天试了下1.9正式版本,结果发现原先返回bytearray给flash的地方都卡死了,不会返回任何数据。

到网上搜了下,看来已经有人遇到我一样的问题了,AMF3 ByteArray serialization Bug ,修正方案见:patch for amfphp AMF3 ByteArray serialization bug

如果上面地址无法访问,请使用无忧在线代理访问。

这是转自原文:

Base on amfphp 1.9, there are bugs of AMF3 ByteArray serialization, if you want to send a ByteArray from PHP to flash, you will have to modify core/amf/io/AMFSerializer.php:writeAmf3ByteArray function.


Line 991:
Original code:
function writeAmf3ByteArray($d)
{
  $this->writeByte(0x0C);
  $this->writeAmf3String($d, true);
  $this->writeAmf3ByteArrayBody($d);
}
change to:
function writeAmf3ByteArray($d)
{
  $this->writeByte(0x0C);
  $this->writeAmf3ByteArrayBody($d);
}
It fixed two issues:
1. writeAmf3String and writeAmf3ByteArrayBody writes ByteArray body content twice
2. writeAmf3String uses U29S-ref, ByteArray should be U29O-ref ( ref AMF3-spec)

Hope helpful。
标签:bytearrayamfphp分类:PHP阅读:3688
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅