I spent a lot of time to refactor my server application so it can serve HTTP and my proprietary binary protocol on the same port. So I don't need to deploy an HTTP server and all the connections are made on port 80, the default HTTP port, which is generally not blocked by firewall.
Unfortunatly at the end of my work I realized that the flash socket component has some limitation on using port 80.
I thaught it was a bug (I made a bug report https://bugs.adobe.com/jira/browse/FP-1866).
As nobody is interested by this report, I now think that this limitation is done on purpose by Adobe. I don't know exactly why, may be to force to use their data service product.
I can understand that. But what I am hangry about is that nowhere in the documentation of the socket component there is an information about this limitation. I guess lot of people lost time trying to reach an unreachable goal ! And most of the time you find the problem at the end of the work because local connection is working ok on port 80.
So my hope is to have a clear information of Adobe about this limitation...
Well, finally I am able to explain the problem. I still don’t really know if it is a bug or not…
I confirm that connections on port 80 are processed in a special way because the CONNECT event is dispatched nevertheless no TCP packet are sent to the server. The situation is that client appears to be connected but server don’t have any connection for this client.
Anyway when you write data on this socket a real connection is established and data are correctly processed.
But there is one thing that is not working with port 80 : serving the policy file request on the same port than the connection.
I am using a multiplexer server which serves various protocols on the same port. So it is why my connection on port 80 never works, because the policy file request was not processed.
If I set a policy file server on port 843 (default port used by Flash Player) I can use port 80 for my binary protocol.
Quite strange, anyway…