我希望能够从Flash媒体服务器3.5连接到Zend_Amf(最新的ZendFramework版本)。我试着做以下事情:
function amfresponder ( ) {
this.onResult = function (result) {
trace("Success: " + String(result));
};
this.onStatus = function (fault) {
trace("Error: "+ fault.description);
};
};
application.onConnect = function(client) {
myResponder = new amfresponder();
connection = new NetConnection();
connection.connect("http://localhost/AmfServer.php");
trace("checking connection");
connection.call("isConnected",myResponder);
return true;
}
我在apache访问日志中看到了AmfServer.php的请求 但没有返回任何内容,甚至没有返回错误消息。在fms管理日志中,我只看到'检查连接'。
另一种方法:
application.isFine_Status = function(info) {
for(var item in info) {
trace(item + " " + info[item]);
}
}
application.isFine_Result = function(res) {
trace(res);
}
application.onAppStart = function() {
trace("application started");
NetServices.setDefaultGatewayUrl("http://localhost/AmfServer.php");
this.gatewayconn = NetServices.createGatewayConnection();
this.pservice = this.gatewayconn.getService('PrivateFunc',this);
this.pservice.isFine();
}
Zend_Amf类是:
set_include_path(get_include_path().PATH_SEPARATOR.realpath(__DIR__.'/../').PATH_SEPARATOR.realpath(__DIR__.'/../../include/PEAR-R2'));
require_once('Zend/Amf/Server.php');
require_once('PrivateFunc.php');
$server = new Zend_Amf_Server();
$server->setClass('PrivateFunc','PrivateFunc');
$response = $server->handle();
echo $response;
在这两种情况下,我都没有结果。任何想法?
答案 0 :(得分:1)
您可能需要尝试以下代码
setClass( “PrivateFunc”); //需要启动服务器 $ handle = $ server-> handle(); 回声($处理); //回波($服务器 - >手柄()); ?>答案 1 :(得分:0)
好的,经过大量研究后,似乎目前无法从adobe flash media server到zend_amf进行正确的连接。
我通过从adobe flash媒体服务器转移到它的免费解决方案red5解决了这个问题。 red5是基于java的,它提供了非常强大的编程语言,因此我将相关代码从php转换为java,并且所有内容(db操作)都在red5中完成,并且不需要php。