/* * jPlayer Plugin for jQuery JavaScript Library * http://www.jplayer.org * * Copyright (c) 2009 - 2014 Happyworm Ltd * Licensed under the MIT license. * http://opensource.org/licenses/MIT * * Author: Robert M. Hall * Date: 7th August 2012 * Custom NetConnection Manager for more robust RTMP support * Based in part on work by Will Law for the old Akamai NCManager.as * and some of Will's new work in the OVP base classes (Open Video Player) * as well as similar approaches by many other NetConnection managers * */ /* TODO LIST 08/18/2011: 1. Wired up errors to dispatch events to Jplayer events to allow them to bubble up to JS 2. Rework event dispatch to handoff netconnection instead of a passed in reference 3. Allow a customizeable list of protocols and ports to be used instead of entire list 4. Allow a specific port/protocol (1 connect type) to be used first, and then optionally fallback on a custom list or the default list 5. Remove some traces and check a few other items below where I've made notes */ package happyworm.jPlayer { import flash.events.*; import flash.net.*; import flash.utils.Timer; import flash.utils.getTimer; import flash.utils.clearInterval; import flash.utils.setInterval; public class ConnectManager extends Object { private var protocols_arr:Array = new Array("rtmp","rtmpt","rtmpe","rtmpte","rtmps"); private var ports_arr:Array = new Array("",":1935",":80",":443"); private const protCount:Number = 5; private const portCount:Number = 4; private var _ncRef:Object; private var _aNC:Array; private var k_TIMEOUT:Number = 30000; private var k_startConns:Number; private var m_connList:Array = []; private var m_serverName:String; private var m_appName:String; private var m_streamName:String; private var m_connListCounter:Number; private var m_flashComConnectTimeOut:Number; private var m_validNetConnection:NetConnection; private var connectSuccess:Boolean=false; private var negotiating:Boolean=false; private var idleTimeOut:Boolean=false; public function ConnectManager() { trace ("ConnectManager Initialized Version: 1.00 DT"); createPortsProtocolsArray(); } private function createPortsProtocolsArray():void { var outerLoop:Number=0; var innerLoop:Number=0; for (outerLoop=0; outerLoop