flash player的as代碼中如何追加SecureToken
SecureToken 安全特性要求修改你的客戶端 ActionScript 播放器代碼以使其能夠正確地應(yīng)對 SecureToken 挑戰(zhàn)。接下來介紹如何在自定義 Flash 客戶端代碼中實(shí)現(xiàn)這個(gè)。
為解釋如何將 SecureToken 集成到你的客戶端 ActionScript 代碼中,假定我們已經(jīng)配置一個(gè)名為 live 的服務(wù)器端應(yīng)用,該應(yīng)用使用了 ModuleSecureToken 模塊來保護(hù)內(nèi)容的發(fā)布和回放,secureTokenSharedSecret 屬性設(shè)置為 mytestpassword。
建立一個(gè)到服務(wù)器端的 Flash 客戶端代碼如下
import import com.wowza.encryption.TEA;
var nc:NetConnection = new NetConnection();
function ncOnStatus(infoObject:NetStatusEvent)
{
if (infoObject.info.code == "NetConnection.Connect.Success")
{
if (infoObject.info.secureToken != null)
nc.call("secureTokenResponse", null, TEA.decrypt(infoObject.info.secureToken, "mytestpassword"));
}
}
nc.addEventListener(NetStatusEvent.NET_STATUS, ncOnStatus);
nc.connect("rtmp://localhost/vod");
例子中的第一行導(dǎo)入了用于解密 SecureToken 令牌的 TEA 庫。ActionScript 2.0 和 3.0 版本的這一代嗎包含在這個(gè)下載鏈接中:ActionScriptTEA.zip。
如果你打算將這些代碼集成到你的播放器中,你需要拷貝這些類到你的 Flash 客戶端代碼中去。
接下來,我們定義并創(chuàng)建一個(gè)將被用于和 Wowza Media Server 服務(wù)器端通信的 NetConnection 對象。接下來是在 NetConnection 對象周期中將被調(diào)用的 NetConnection onStatus 處理器。我們添加 onStatus 處理器作為 NetConnection 的一個(gè)監(jiān)聽器,最后添加一個(gè) NetConnection.connect(url) 以連接到 Wowza Media Server。
當(dāng) NetConnection 建立了和 Wowza Media Server 的連接時(shí),onStatus 處理器將被以 NetConnection.Connection.Success 值的 infoObject.info.code 調(diào)用。如果服務(wù)器端使用 SecureToken 保護(hù),那么 infoObject.info 對象也將會(huì)在 secureToken 屬性中包含一個(gè) SecureToken 質(zhì)疑。要應(yīng)對這一質(zhì)疑,F(xiàn)lash 客戶端代碼使用設(shè)置給解密令牌的第一個(gè)參數(shù)調(diào)用遠(yuǎn)程方法 secureTokenResponse。你可以使用以下調(diào)用查看解密的令牌:
TEA.decrypt(infoObject.info.secureToken, "mytestpassword")
這就是要完成質(zhì)疑和回應(yīng)循環(huán)所需要做的所有事情。在調(diào)用 secureTokenResponse 之后,連接通過了驗(yàn)證,你的 Flash 代碼的其他部分將正常運(yùn)行。如果 secureTokenResponse 方法在你的 Flash 客戶端代碼調(diào)用 play 或者 publish 之前沒有被調(diào)用,Wowza Media Server 將會(huì)關(guān)閉連接。
如何書寫視頻流
host:IP
application:vod
stream: sample.mp4?wowzatokenendtime=1528272675&wowzatokenstarttime=1528269075&wowzatokenhash=F2xiTpfTdSWLvWGPdykw******32se==
Note: stream的前綴不需要加 "mp4:"
測試動(dòng)畫播放之前,wowza服務(wù)器端開啟下面的服務(wù)
【Use TEA for RTMP token security】在wowza的application中一定要開啟。