Quick tip: Ports Required For RTMFP

In order to be able to use P2P communication within flash apps, you need to have opened UDP ports in range 1024..65535. First, to connect stratus server, you need UDP ports 1935 and 10000..10100, then the communication between peers (Flash Players and AIR) goes through random UDP port in range 1024..65535. In detail:

UDP port 1935 and ports 10000+ are used by the Stratus servers. the UDP ports used on client computers could be any port from 1024..65535.

in order to just connect to the Stratus servers, you must be able to send and receive UDP packets with any UDP port on your client computer (source port for outgoing, destination port for incoming) and port 1935 and ports 10000+ on the Stratus server computers (destination port for outgoing, source port for incoming).

*just* connecting to Stratus isn’t useful, though, since all it can do is help you to connect directly to other clients running Flash Player or AIR. other client computers, just like your client computer, will be using a random UDP port in the range 1024..65535. therefore, in order to communicate P2P with other client computers using RTMFP, you must do one of the two following things:

1) allow all UDP with a source or destination port from 1024..65535.

2) have a “stateful firewall” that allows bidirectional UDP connections to and from any UDP ports in the range 1024 through 65535 inclusive as long as a first packet is sent outbound through the firewall. this is commonly called “allowing outbound UDP”. sending the first packet outbound through your firewall to allow return packets is commonly called “UDP hole punching”. searching on these terms should give you more information.

in general, a firewall that blocks UDP will block RTMFP communication.

Read more about PORT NUMBER of RTMFP.

Flash Media Server: Core is no longer active (update)

In a past few weeks I have been working on a middle sized flash project. While its nature is in multi user communication and it was crucial to do that with low latency, our first choice was of course Flash Media Server. I spent few days by programming server side (fms) and few days on optimizing its performance and debugging and finally it was fast enough to get staged live. Server side was just about calling client methods (client -> fms -> client) and some SharedObjects, but no video nor audio streaming was used. My company dedicated super fast server (4 x quadcore Intel(R) Xeon(R) CPU E7440 @ 2.40GHz, 32 GB ram) just for Flash Media Server so we were able to run it on 16 cores. We installed fms v.3.0.1 r123 with valid unlimited licence on it. And went live.

First, we tried default fms configuration and soon after start master.log (and all other logs) started to grow up. The main content of the log was:

2009-10-07 00:03:31 24962 (i)2581223 Core (8684) is no longer active. -
2009-10-07 00:03:31 24962 (w)2581256 Core (8684) _defaultRoot_:_defaultVHost_:::_1 experienced 1 failure[s]! -
2009-10-07 00:03:31 24962 (i)2581221 Core (10772) started, arguments : -adaptor "_defaultRoot_" -vhost "_defaultVHost_" -app  -inst  -tag "_1" -conf "./conf/Server.xml" -name "_defaultRoot_:_defaultVHost_:::_1". -

Read the rest of this entry »