123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- var WebSocket = require('./websocket');
- exports = module.exports = FlashSocket;
-
- function FlashSocket (mng, data, req) {
- return WebSocket.call(this, mng, data, req);
- }
- FlashSocket.prototype.__proto__ = WebSocket.prototype;
- FlashSocket.prototype.name = 'flashsocket';
- FlashSocket.init = function (manager) {
- var server;
- function create () {
-
-
- 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;
- }
-
- manager.on('set:origins', function (value, key) {
- if (!server) return;
-
- server.origins = Array.isArray(value) ? value : [value];
- server.compile();
- });
-
- 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;
-
- try {
- server.close();
- }
- catch (e) { }
- }
- create();
- }
- });
-
- manager.on('set:flash policy server', function (value, key) {
- var transports = manager.get('transports');
- if (~transports.indexOf('flashsocket')) {
- if (server && !value) {
-
- try {
- server.close();
- }
- catch (e) { }
- }
- } else if (!server && value) {
-
- create();
- }
- });
-
- manager.on('set:transports', function (value, key){
- if (!server && ~manager.get('transports').indexOf('flashsocket')) {
- create();
- }
- });
-
- if (~manager.get('transports').indexOf('flashsocket')){
- create();
- }
- };
|