我正在为 Flash 前端实现 AMF 服务方法。通常情况下一切正常,但我们发现如果两个方法一个接一个地被调用,第二个调用返回 null 到 flash 前端,即使该方法实际上在 PHP 端成功完成(为了验证这一点,我在我返回之前将返回数据转储到文件中)。
以前有人有过这种行为吗?ZendAMF 是否有一些设置?
我正在为 Flash 前端实现 AMF 服务方法。通常情况下一切正常,但我们发现如果两个方法一个接一个地被调用,第二个调用返回 null 到 flash 前端,即使该方法实际上在 PHP 端成功完成(为了验证这一点,我在我返回之前将返回数据转储到文件中)。
以前有人有过这种行为吗?ZendAMF 是否有一些设置?
也许在调用第二个方法之前等待第一个方法完成的确认?
我也使用 ZendAMF。我注意到,如果一个调用失败,它将触发任何其他批处理调用的失败消息(可以使用异步令牌来解决这个问题)。
我会尝试一次发送一个呼叫,如果有一个呼叫,则找出哪个呼叫失败。就我个人而言,我使用了一个名为 Charles 的软件和 HTTPProxy,它允许我查看我执行的任何 AMF 调用的内容和错误消息。您也可以使用wireshark,无论哪种方式,您都可以看到发送的确切请求,以及后端抛出的任何错误消息。
您是否在代码中使用任何事务(如 Doctrine ),有时代码会通过测试并正确写出,但在事务关闭时会阻塞并最终引发错误。
实际上,flash 端对两个函数调用使用了相同的连接。为每个呼叫建立单独的连接已经解决了这个问题。