日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

让你的 wowza server提供 RESTful web 服务

發布時間:2025/7/14 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让你的 wowza server提供 RESTful web 服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有時我們 nginx 須要和 wowza 服務器交互以進行一些 LB 事宜;有時我們的管理員須要實時了解 wowza 服務器的一些其它狀態信息(比方一些自己定義對象的狀態等等)。而用 rtmp 不是太方便。

這些情況下。假設我們的 wowza 服務器能提供一個 http api 就好了。就像 web 容器 tomcat 那樣。本文以一個簡單的 http 發送參數到 wowza。然后 wowza 返回一個 json 為例(經典的 REST 案例)。介紹怎樣讓你的 wowza 服務器提供 RESTful web 調用接口。
? ? ? ? 本文是在《代替 Ant:使用 Maven 管理 Wowza 插件開發》樣例的基礎上進一步進行研發,沒有使用 wowza 官方的 Eclipse 插件(官方對 wowza 項目的管理使用的是 ant)。


? ? ? ? 1. 新建 maven 項目
? ? ? ? 參考《代替 Ant:使用 Maven 管理 Wowza 插件開發》步驟。新建的 maven 項目 defonds-server-module 例如以下:

? ? ? ? 新建項目的 debug 調試效果:

? ? ? ? 2. 編寫 HTTProvider2Base 子類

package com.defonds.wms.module.server;import java.io.IOException; import java.io.OutputStream;import com.wowza.wms.http.HTTProvider2Base; import com.wowza.wms.http.IHTTPRequest; import com.wowza.wms.http.IHTTPResponse; import com.wowza.wms.logging.WMSLogger; import com.wowza.wms.logging.WMSLoggerFactory; import com.wowza.wms.vhost.IVHost;public class ServerMonitorHttpInterface extends HTTProvider2Base {private static final WMSLogger logger = WMSLoggerFactory.getInstance().getLoggerObj(ServerMonitorHttpInterface.class.getName());@Overridepublic void onHTTPRequest(IVHost ivHost, IHTTPRequest request, IHTTPResponse response) {String id = request.getParameter("id");String name = request.getParameter("name");logger.debug("ServerMonitorHttpInterface--http--request--id=" + id + ";name=" + name);// TODO do your own business logic hereString jsonObject = "{\"key1\":\"value1\",\"key2\":\"value2\"}";response.setHeader("Content-Type", "application/json");// Get the printwriter object from response to write the required json object to the output stream OutputStream out = response.getOutputStream();try {out.write(jsonObject.getBytes());out.flush();} catch (IOException e) {logger.error(e.getMessage(), e);}}}? ? ? ? 3. 編輯 VHost.xml
? ? ? ? 編輯 %wowza%/conf/VHost.xml。加入一個 HTTPProvider:
<HTTPProvider><BaseClass>com.defonds.wms.module.server.ServerMonitorHttpInterface</BaseClass><RequestFilters>monitor*</RequestFilters><AuthenticationMethod>none</AuthenticationMethod> </HTTPProvider>
? ? ? ? 4. 項目又一次打包部署
? ? ? ? 命令行切換到你的 defonds-server-module 項目文件夾下,運行
mvn package
? ? ? ? 檢查 %wowza%/lib 文件夾,發現 defonds-server-module 已成功部署:

? ? ? ? 5. 訪問接口
? ? ? ? debug 啟動 defonds-server-module,然后在瀏覽器訪問 http://localhost:1935/monitor?id=9527&name=defonds
? ? ? ? 發現返回的是
Wowza Streaming Engine 4 Trial Edition

? ? ? ? Eclipse 控制臺也沒有 ServerMonitorHttpInterface 本應該輸出的 log 日志。
? ? ? ? 這是由于 com.wowza.wms.http.HTTPServerVersion 這個 HTTPProvider 把請求攔截了:
<HTTPProvider><BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass><RequestFilters>*</RequestFilters><AuthenticationMethod>none</AuthenticationMethod></HTTPProvider>
? ? ? ? 由于它的配置是 *。

能夠改為其它,或者將其凝視掉。就能夠了。


? ? ? ? 凝視掉 HTTPServerVersion 之后。又一次啟動 defonds-server-module,然后訪問 http://localhost:1935/monitor?id=9527&name=defonds:
? ? ? ? 這次是返回的我們想要的信息:

? ? ? ? Eclipse 控制臺有 log 輸出了:
DEBUG server comment - ServerMonitorHttpInterface--http--request--id=9527;name=defonds
? ? ? ? 成功了。

嗯,就這些。就是這么簡單:)本文演示樣例源代碼已上傳 CSDN,有興趣的朋友能夠去這里下載:http://download.csdn.net/detail/defonds/7493981。


? ? ? ? 參考資料

  • http://stackoverflow.com/questions/10410854/call-a-wowza-server-from-android-app
  • http://stackoverflow.com/questions/2010990/how-do-you-return-a-json-object-from-a-java-servlet
  • http://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/

總結

以上是生活随笔為你收集整理的让你的 wowza server提供 RESTful web 服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。