我尝试为wowza 3.6.2构建模块。我的模块需要获取一个IApplicationIdstance的实例,我发现的所有示例都在onAppStart方法中进行了该操作,但是当我访问wowza应用程序时未调用它。

我有以下内容:

public class TestModule extends ModuleBase {

    public void onAppStart(IApplicationInstance appInstance) {
        String fullname = appInstance.getApplication().getName() + "/"
                + appInstance.getName();
        getLogger().info("onAppStart: " + fullname);
    }

    public void onAppStop(IApplicationInstance appInstance) {
        String fullname = appInstance.getApplication().getName() + "/"
                + appInstance.getName();
        getLogger().info("onAppStop: " + fullname);
    }
....
}


应用配置:

    <Module>
        <Name>TestModule</Name>
        <Description>MyTestModule</Description>
        <Class>mnesterenko.TestModule</Class>
    </Module>


我也有applications/myappconf/myapp/Application.xml

我在浏览器中打开http://wowza_ip:1935/myapp,但未调用onAppStart,我缺少什么?

最佳答案

原因是您的HTTP链接被wowza HTTPProviders捕获。
当您访问wowza的“流”功能(通常)时,将使用Wowza模块。
因此,如果您将RTMP连接到特定的应用程序实例,那么它将起作用。
此外,您可以“通过HTTP”使用应用程序,但是这将要求您请求特定的HTTP流URL,例如http://example.com/path/to/file.ext/playlist.m3u8

因此wowza在其中结合了流服务器和Web服务器。

如果您想捕获此类请求,请阅读有关HTTPProviders的更多信息。
https://www.wowza.com/docs/http-providers

10-08 19:23