flash player的as代码中如何追加SecureToken
SecureToken 安全特性要求修改你的客户端 ActionScript 播放器代码以使其能够正确地应对 SecureToken 挑战。接下来介绍如何在自定义 Flash 客户端代码中实现这个。
为解释如何将 SecureToken 集成到你的客户端 ActionScript 代码中,假定我们已经配置一个名为 live 的服务器端应用,该应用使用了 ModuleSecureToken 模块来保护内容的发布和回放,secureTokenSharedSecret 属性设置为 mytestpassword。
建立一个到服务器端的 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");
例子中的第一行导入了用于解密 SecureToken 令牌的 TEA 库。ActionScript 2.0 和 3.0 版本的这一代吗包含在这个下载链接中:ActionScriptTEA.zip。
如果你打算将这些代码集成到你的播放器中,你需要拷贝这些类到你的 Flash 客户端代码中去。
接下来,我们定义并创建一个将被用于和 Wowza Media Server 服务器端通信的 NetConnection 对象。接下来是在 NetConnection 对象周期中将被调用的 NetConnection onStatus 处理器。我们添加 onStatus 处理器作为 NetConnection 的一个监听器,最后添加一个 NetConnection.connect(url) 以连接到 Wowza Media Server。
当 NetConnection 建立了和 Wowza Media Server 的连接时,onStatus 处理器将被以 NetConnection.Connection.Success 值的 infoObject.info.code 调用。如果服务器端使用 SecureToken 保护,那么 infoObject.info 对象也将会在 secureToken 属性中包含一个 SecureToken 质疑。要应对这一质疑,Flash 客户端代码使用设置给解密令牌的第一个参数调用远程方法 secureTokenResponse。你可以使用以下调用查看解密的令牌:
TEA.decrypt(infoObject.info.secureToken, "mytestpassword")
这就是要完成质疑和回应循环所需要做的所有事情。在调用 secureTokenResponse 之后,连接通过了验证,你的 Flash 代码的其他部分将正常运行。如果 secureTokenResponse 方法在你的 Flash 客户端代码调用 play 或者 publish 之前没有被调用,Wowza Media Server 将会关闭连接。
如何书写视频流
host:IP
application:vod
stream: sample.mp4?wowzatokenendtime=1528272675&wowzatokenstarttime=1528269075&wowzatokenhash=F2xiTpfTdSWLvWGPdykw******32se==
Note: stream的前缀不需要加 "mp4:"
测试动画播放之前,wowza服务器端开启下面的服务
【Use TEA for RTMP token security】在wowza的application中一定要开启。
网友评论