I’ve been getting a lot of positive feedback recently on the post I made last December on this topic, so it’s probably time to post an update.
Last week, Adobe finally released some help for people who need to provide socket policy services. They’ve got python and perl versions of the socket policy daemon that look like they can run either standalone or through xinetd. They don’t claim that the code is production quality yet… but it’s at least something.
Of course, I released sample PHP code 5 months ago… shrug.
My confederates and I have spent the intervening months sniffing packets, yelling at flash, rewriting daemons, etc… until settling upon a version of the service that appears to function reliably now. I am currently running it on 6 different servers and have seen it successfully handle requests from >100 simultaneous users during stress tests.
The biggest problem with my previous versions of the code was how I handled closing of connections. Previously, I had simply accepted connections and fired off the policy xml without waiting for a request from the client.
This worked 95% of the time over a good net connection, and more like 80% of the time over a poor connection.
The reason it didn’t work consistently was because of weird tcp ordering issues. Connections would be closed out of order, the response would be received before the request was dispatched, etc..
My new version is much more robust and actually waits for flash to submit the request before sending the XML. I consider it
release candidate beta quality code and hope to be able to release it later today.
Version 0.9.b is available now.