Mercurial > hg > nodescore
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 }; |