HTTP Tunneling protocols
RTMP, RTMPT and RTMPS
By default, the Macromedia Flash Player communicates with the Flash Communication Server using RTMP protocol over port 1935. If that fails, it will try again over ports 443 and 80 in an attempt to workaround firewall settings within a company, which prevents TCP/IP connections over non-standard ports. The above approach allows approximately 96% of all users to access publicly accessible Flash Communication servers.
To support closer to 100% of the users we need the Macromedia Flash Player to negotiate connection to the external Flash Communication server though a proxy server (if there is one), or use HTTP protocol to transmit RTMP packets (HTTP tunneling) if there is a firewall (which allows only HTTP content to be sent out to public servers).
With the previous player, server connection requests were always made using the RTMP protocol and could optionally specify a port number. Requests would be in the form of:
nc.connect( "rtmp://mysite.com/myapp");
which would yield up to 3 connection attempts using RTMP, trying ports 1935, 443 and 80.
When specifying a port, requests would be in the form of:
nc.connect( "rtmp://mysite.com:PORT/myapp");
which would yield only 1 connection attempt using RTMP and the specified port.
The current player has been extended to support connection requests using 1 of 3 protocols:
- RTMP (default port 1935)
- RTMPT (tunnel via http - default port of 80)
- RTMPS (tunnel via https - default port of 443)
Connection statements are of the form:
-
nc.connect( "rtmpt://flashteam.macromedia.com/myapp"); -
nc.connect( "rtmps://flashteam.macromedia.com/myapp");
which will each yield only 1 connection attempt to that protocol's default port.
When specifying a port, the connection statement would be in the form of:
-
nc.connect( "rtmp://flashteam.macromedia.com:PORT/myapp"); -
nc.connect( "rtmpt://flashteam.macromedia.com:PORT/myapp"); -
nc.connect( "rtmps://flashteam.macromedia.com:PORT/myapp");
which will each yield only 1 connection attempt using the protocol on the specified port.
There is also a special connection scenario:
-
nc.connect( "rtmp://flashteam.macromedia.com/myapp");
which will yield up to 2 connection attempts, RTMP:1935 and then RTMPT:80 (was "HTTPT:80")
In the new player, this is the only "fall-back" connection attempt. If our default mode fails, the player will then try http tunneling on port 80. This is likely to be the most common usage of http tunneling.
Note: HTTP tunneling may have an impact on the performance of realtime audio and video transmission.
Macintosh OS 9 Classic Plug-in:
HTTP Tunneling is not supported in the classic Macromedia Flash Player plugin. However, the implementation of standard RTMP support has been effected, so this configuration must still be tested. Note that the classic plug-in retains the old connection attempt strategy.
Netscape Proxy Settings:
Proxy Settings specific to Netscape Navigator are not supported. In most cases, the simple work-around is to set the system level proxy settings that these APIs support (which will often already be set anyway).
This content requires Flash
To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.
Download the free Flash Player now!
