Flash policy server using Node.js

The following code serves the cross domain policy file, needed for flash socket connections.

flash_policy_server.js

var net = require("net"),
    domains = ["*:*"]; // Domain:Port

net.createServer(
    function(socket) {
        socket.write("<?xml version='1.0' ?>\n");
        socket.write("<!DOCTYPE cross-domain-policy SYSTEM 'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'>\n");
        socket.write("<cross-domain-policy>\n");
        domains.forEach(
            function(domain) {
                var parts = domain.split(':');
                socket.write("\t<allow-access-from domain='" + parts[0] + "' to-ports='" + parts[1] + "' />\n");
            }
        );
        socket.write("</cross-domain-policy>\n");
        socket.end();
    }
).listen(843);

Since 843 is a reserved port, you have to run the server as root.

sudo node flash_policy_server.js

Posted on October 2nd 2011 by GG