Ok, well that's a bit scary "hey we want to do file sharing but we don't know network"
my first advice would be you absolutely need someone who knows well network in your team
Basically how you do file sharing or chat exchange will depend on your network layout (see network topology), a classic way to do it is to have a central server and every clients connect to it
eg, your topology is "star", everything goes trough the center of the star (eg. the server)
for chat that's can be OK, as it transfer only "text" even if you can reach some limits
and with that you can also transfer files eg. the case one skype client send a doc to another skype client
but then by transferring files which are usually bigger than just "text", your central server
will "feel it" and if you have a little too much clients sending files at the same time your sever
will not be able to keep up.
To solve that, either you deploy more servers, exactly same principle as serving web pages from an HTTP server, if 1 server can not cope with the load you add more, some sites run 100s of servers just to serve web pages.
Or you can change the way you actually share files by changing your network topology, and you can move to a mesh network and use a different protocole like P2P.
So instead of having to go through the central server to send a file from A to B,
A connect directly to B and send the file without going through the central server.
That's not the only difference, with a star network, the central point is the server and is listening
for data wether it is text messages, files, etc. and this will work with many client firewalls because usually the firewall protect the inbound not the outbound, eg. you can connect to anywhere but you are blocked to receive from anywhere.
So with a mesh network where clients connect directly to each others, you will either have to instruct your users to open a specific port in the firewall so they can listen to and receive data from others, and is usually where the problem happens: nobody want to go through that because it's not user friendly.
So, in general, the client can run a specific type of code that will kind of open hole in their firewall,
see hole punching, and Punching holes into firewalls for much more details, and in your case The hole trick, How Skype & Co. get round firewalls.
There different ways to do this hole punching, here some popular
And yes another approach is to use a proxy, as in general a firewall will not block a client trying to connect to the outside like HTTP/HTTPS.
So you mentioned RTMFP, good because it is basically the thing you can use "easily".
First, it is supported in all Flash/AIR clients since Flash 10 and AIR 1.5.
Second, it does all this hole punching for you
see rfc7016 - Adobe's Secure Real-Time Media Flow Protocol
Session multiplexing and facilities to support UDP
hole-punching simplify Network Address Translator (NAT) traversal in
And third, it does encrypt the data exchanged between clients.
see rfc7425 - Adobe's RTMFP Profile for Flash Communication
And many other things like IP mobility, quite useful when your client is on mobile.
Now, one of the main problems with that is you still need a central server a "rendez-vous" server,
and the official one Adobe Media Server could be quite expensive.
But note their RTMFP FAQ is great to "sale the solution"
For a cheaper RTMFP server you can look into open source solutions like MonaServer
and here on Github MonaSolutions/MonaServer, also check their FAQ
On their example page they do have a P2P file sharing example.
My advices would be that
And it will not be easy, many people struggle with P2P in Flash/AIR, you have to go through a phase before "getting it".
And yes it will cost money, even if you don't go with a central server you still need to rent a dedicated server to host the MonaServer, depending on how big you want to go it could go cost many hundred dollars per months or more.
Yep, P2P does not make your server costs free.
A free chat that runs on Cirrus server for few hundreds people and that is not a commercial app, sure you can get it almost free.
But anything else commercial / professional / etc. that had to support a lot of users (starting at 10.000 and more) will costs a lot more money.