We stream live audio with HLS (Apple devices) and RTMPE (jwplayer). Security is important to us, so we’ve implemented ‘expiring links’ on the streams. With RTMPE and jwplayer, we could add the timestamp and hash signature as flash vars and process them in an onConnect() method that we added as a module to Wowza.
We’re now deploying RTMPS. Since jwplayer doesn’t seem to support RTMPS, we’re using flowplayer. But flowplayer doesn’t seem to support setting flashvars and pass parameters as jwplayer does. So, we’re looking at using flowplayer’s SecureStreaming plugin which supports expiring links as well as secure token.
The problem we’re now having is deciding what to do with clients that still connect with jwplayer when using an RTMPS stream. In the RTMP onConnect() method, we check client.isSSL(). When this TRUE, we thought we could assume that the connection came from flowplayer using RTMPS and then skip the processing of the expiring links in onConnect(), deferring the check to later. However, it turns out that jwplayer will see RTMPS and connect with RTMPTS. This, of course, also returns TRUE for client.isSSL(). As a result, none of our ‘expiring links’ checking gets done with jwplayer using RTMPS.
Is there any way to determine in onConnect() if the connection is RTMPTS or RTMPS?
Is there a better way to process ‘expiring links’, say in the onPlay() method that will work for both jwplayer and flowplayer?