diff node_modules/socket.io/lib/transports/flashsocket.js @ 69:333afcfd3f3a

added node_modules to project and fixed path to chronometer also added deps to installer script
author tzara <rc-web@kiben.net>
date Sat, 26 Oct 2013 14:12:50 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/node_modules/socket.io/lib/transports/flashsocket.js	Sat Oct 26 14:12:50 2013 +0100
@@ -0,0 +1,129 @@
+/*!
+ * socket.io-node
+ * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Module requirements.
+ */
+var WebSocket = require('./websocket');
+
+/**
+ * Export the constructor.
+ */
+
+exports = module.exports = FlashSocket;
+
+/**
+ * The FlashSocket transport is just a proxy
+ * for WebSocket connections.
+ *
+ * @api public
+ */
+ 
+function FlashSocket (mng, data, req) {
+  return WebSocket.call(this, mng, data, req);
+}
+
+/**
+ * Inherits from WebSocket.
+ */
+
+FlashSocket.prototype.__proto__ = WebSocket.prototype;
+
+/**
+ * Transport name
+ *
+ * @api public
+ */
+
+FlashSocket.prototype.name = 'flashsocket';
+
+/**
+ * Listens for new configuration changes of the Manager
+ * this way we can enable and disable the flash server.
+ *
+ * @param {Manager} Manager instance.
+ * @api private
+ */
+
+
+FlashSocket.init = function (manager) {
+  var server;
+  function create () {
+
+    // Drop out immediately if the user has
+    // disabled the flash policy server
+    if (!manager.get('flash policy server')) {
+      return;
+    }
+
+    server = require('policyfile').createServer({ 
+      log: function(msg){
+        manager.log.info(msg);
+      }
+    }, manager.get('origins'));
+
+    server.on('close', function (e) {
+      server = null;
+    });
+
+    server.listen(manager.get('flash policy port'), manager.server);
+
+    manager.flashPolicyServer = server;
+  }
+
+  // listen for origin changes, so we can update the server
+  manager.on('set:origins', function (value, key) {
+    if (!server) return;
+
+    // update the origins and compile a new response buffer
+    server.origins = Array.isArray(value) ? value : [value];
+    server.compile();
+  });
+
+  // destory the server and create a new server
+  manager.on('set:flash policy port', function (value, key) {
+    var transports = manager.get('transports');
+    if (~transports.indexOf('flashsocket')) {
+      if (server) {
+        if (server.port === value) return;
+        // destroy the server and rebuild it on a new port
+        try {
+          server.close();
+        }
+        catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
+      }
+      create();
+    }
+  });
+
+  // create or destroy the server
+  manager.on('set:flash policy server', function (value, key) {
+    var transports = manager.get('transports');
+    if (~transports.indexOf('flashsocket')) {
+      if (server && !value) {
+        // destroy the server
+        try {
+          server.close();
+        }
+        catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
+      }
+    } else if (!server && value) {
+      // create the server
+      create();
+    }
+  });
+
+  // only start the server
+  manager.on('set:transports', function (value, key){
+    if (!server && ~manager.get('transports').indexOf('flashsocket')) {
+      create();
+    }
+  });
+  // check if we need to initialize at start
+  if (~manager.get('transports').indexOf('flashsocket')){
+    create();
+  }
+};