comparison 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
comparison
equal deleted inserted replaced
68:b076cd17638c 69:333afcfd3f3a
1 /*!
2 * socket.io-node
3 * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
4 * MIT Licensed
5 */
6
7 /**
8 * Module requirements.
9 */
10 var WebSocket = require('./websocket');
11
12 /**
13 * Export the constructor.
14 */
15
16 exports = module.exports = FlashSocket;
17
18 /**
19 * The FlashSocket transport is just a proxy
20 * for WebSocket connections.
21 *
22 * @api public
23 */
24
25 function FlashSocket (mng, data, req) {
26 return WebSocket.call(this, mng, data, req);
27 }
28
29 /**
30 * Inherits from WebSocket.
31 */
32
33 FlashSocket.prototype.__proto__ = WebSocket.prototype;
34
35 /**
36 * Transport name
37 *
38 * @api public
39 */
40
41 FlashSocket.prototype.name = 'flashsocket';
42
43 /**
44 * Listens for new configuration changes of the Manager
45 * this way we can enable and disable the flash server.
46 *
47 * @param {Manager} Manager instance.
48 * @api private
49 */
50
51
52 FlashSocket.init = function (manager) {
53 var server;
54 function create () {
55
56 // Drop out immediately if the user has
57 // disabled the flash policy server
58 if (!manager.get('flash policy server')) {
59 return;
60 }
61
62 server = require('policyfile').createServer({
63 log: function(msg){
64 manager.log.info(msg);
65 }
66 }, manager.get('origins'));
67
68 server.on('close', function (e) {
69 server = null;
70 });
71
72 server.listen(manager.get('flash policy port'), manager.server);
73
74 manager.flashPolicyServer = server;
75 }
76
77 // listen for origin changes, so we can update the server
78 manager.on('set:origins', function (value, key) {
79 if (!server) return;
80
81 // update the origins and compile a new response buffer
82 server.origins = Array.isArray(value) ? value : [value];
83 server.compile();
84 });
85
86 // destory the server and create a new server
87 manager.on('set:flash policy port', function (value, key) {
88 var transports = manager.get('transports');
89 if (~transports.indexOf('flashsocket')) {
90 if (server) {
91 if (server.port === value) return;
92 // destroy the server and rebuild it on a new port
93 try {
94 server.close();
95 }
96 catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
97 }
98 create();
99 }
100 });
101
102 // create or destroy the server
103 manager.on('set:flash policy server', function (value, key) {
104 var transports = manager.get('transports');
105 if (~transports.indexOf('flashsocket')) {
106 if (server && !value) {
107 // destroy the server
108 try {
109 server.close();
110 }
111 catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
112 }
113 } else if (!server && value) {
114 // create the server
115 create();
116 }
117 });
118
119 // only start the server
120 manager.on('set:transports', function (value, key){
121 if (!server && ~manager.get('transports').indexOf('flashsocket')) {
122 create();
123 }
124 });
125 // check if we need to initialize at start
126 if (~manager.get('transports').indexOf('flashsocket')){
127 create();
128 }
129 };