0

我正在开发一个基于 php flash 的应用程序并遵循本教程

在我的 PC 上一切正常,localhost但在实时服务器 CentOS 上却不行。

本教程指导将 amfphp 库保存在 application 下的目录中,并在 ' ' 中librarires创建控制器并将控制器作为服务。gatewaycontrollers/amfcontrollers/amf/services

我已经正确地遵循了这一点,因此我能够在 localhost 上顺利运行它。此外,删除子目录amf也可以正常工作

在现场它给

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
    at amfphpconnection_fla::MainTimeline/frame1()

来自 AS 的连接需要

http://domain.com/index.php/amf/gateway

我尝试了不同的技巧来使其工作,我发现如果我将 /controller/services/serices 文件夹中的服务保存到 amf 本身所在的应用程序/库中并更改网关中服务的路径,那么 flash 就能够访问该文件当我将 Flash 中的路径更改为

http://domain.com/application/libraries/Amfphp/

但是,在我从服务文件中删除extends CI_Controllerandconstructor function或之前,它仍然无法正常运行。get_instance()放置任何一个都会引发相同的错误。这只是运行文件,但对我来说没用,因为它不能使用 CI 框架。

在 AS 中使用控制器路径是必需的,我认为这与文件访问权限有关,因为它在 pc 上而不是在 linux 上工作正常。

我也尝试查看Apache 错误日志,但没有任何可能出现错误的迹象。

看了很多网站寻求帮助,但还没有成功..

还在项目站点本身发布了错误,但目前还没有更新

任何帮助,将不胜感激

问候

4

3 回答 3

0

我遇到了同样的问题,阅读我在 Windows 上看到的 AMFPHP 网站,没有敏感的案例文件。

因此,在 CI 中,他们说,“将您的类命名为 'myclass.php' 并在内部声明 My_class 扩展 CI_Controller”。我在 Flash 中做了什么?我调用了“My_c​​lass”服务。由于我使用 Windows 到 localhost,AMFPHP 可以找到该文件并正常工作。

但不在Linux上。因此,在 Flash 中,我调用了“this.connection.call("my_class", "mymethod", etc)" 并且一切正常。

希望这对某人有用。因此,如果您在 Linux 环境中部署,请仔细检查 AMF 调用的大小写拼写,并确保您从 flash 中调用 gateway.php服务文件的完美名称,而不是文件中的类名称.

干杯。

于 2012-09-30T00:26:38.703 回答
0

我也遇到了这个问题,我正在 OSX 上开发,我看到了错误

faultString => 未找到 Testservice 服务

和这个...

*faultDetail => #0 /home/myserver.com/public_html/project/ci/application/libraries/Amfphp/Core/Common/ServiceRouter.php(100): Amfphp_Core_Common_ServiceRouter->getServiceObject('Testservice') 1 /home/myserver .com/public_html/project/ci/application/libraries/Amfphp/Core/Amf/Handler.php(107): Amfphp_Core_Common_ServiceRouter->executeServiceCall('Testservice', 'getAll', Array) 2 /home/myserver.com/public_html /project/ci/application/libraries/Amfphp/Core/Amf/Handler.php(138): Amfphp_Core_Amf_Handler->handleRequestMessage(Object(Amfphp_Core_Amf_Message), Object(Amfphp_Core_Common_ServiceRouter)) 3 /home/myserver.com/public_html/project/ci /application/libraries/Amfphp/Core/Gateway.php(199): Amfphp_Core_Amf_Handler->handleDeserializedRequest(Object(Amfphp_Core_Amf_Packet),对象(Amfphp_Core_Common_ServiceRouter))4 /home/myserver.com/public_html/project/ci/application/controllers/amf/gateway.php(39):Amfphp_Core_Gateway->service()5 /home/myserver.com/public_html/project/ ci/system/core/CodeIgniter.php(339): Gateway->index() 6 /home/myserver.com/public_html/project/ci/index.php(202): require_once('/home/ncubator/.. .') 7 {主}*

我使用的文件来自谷歌代码页,我没有更改网关文件。我刚刚更改了 testservice.php 内容以适合我的项目。我的基本网址是

http://myserver.com/project/ci/index.php/amf/gateway

您能否介绍一下您提出的解决方案?

谢谢!

于 2013-02-13T10:16:59.493 回答
0

好吧,据我所知,通过AMFPHPFlash 进行的 Flash 通信只接受它所期望的,如果它们是除此之外的任何东西/在此之前导致Bad ConnectFlash 结束时出错......正如我已经在评论中提到的那样,ppalmeid's我的问题是由于将第三方纳入library that was loading automatically其中printing some HTML characters in the output that was causing the Flash to blow

只需检查屏幕上出现的任何字面上的任何字符/警告/通知等。

希望这可以帮助其他面临同样问题的人。

问候朱奈德

于 2013-02-13T11:19:42.543 回答