我有一个 Red5 应用程序,它定义了一些公共 Java 方法。当我启动服务器时,应用程序类的一个对象被创建。我正在尝试使用 Java 应用程序类的现有实例从 PHP 调用应用程序类的公共方法。
所以这是我的 Java 应用程序:
public class App extends org.red5.server.adapter.ApplicationAdapter
{
public boolean appStart(IScope app)
{
// This method gets called when the application starts
// and an object of this App class is created.
return true;
}
// This is the method I would like to call from PHP.
public void f()
{
}
}
从 PHP 中,我想访问创建的 App 对象并调用f()
它的方法。
我试过玩这个叫做“上下文”的东西。所以在 Java 方法App.appStart()
中,我这样做了:
// Save a reference to this App object to be retrieved later in PHP.
new PhpScriptContextFactory().getContext().put("x", this);
在 PHP 中,我尝试像这样访问保存的对象:
require_once("http://localhost:5080/JavaBridge/java/Java.inc");
var_dump(java_is_null(java_context()->get("x")));
不幸的是,java_is_null()
PHP 中的函数返回true
.
我还尝试将 App 对象保存在 App 类的静态变量中,但是当我在 PHP 中访问该变量时,它的值为null
.