github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/themes/wind/static/libs/sockjs-client-1.1.0/tests/support/sockjs_server.js (about) 1 /* eslint camelcase: 0 */ 2 'use strict'; 3 4 var http = require('http'); 5 var nodeStatic = require('node-static'); 6 var sockjs = require('./sockjs_app'); 7 var url = require('url'); 8 var path = require('path'); 9 var debug = require('debug')('sockjs-client:test-server:main'); 10 11 var port = process.env.ZUUL_PORT || 8081; 12 var clientOptions = { 13 // Address of a sockjs test server. 14 url: 'http://localhost:' + port, 15 sockjs_opts: { 16 // websocket:false 17 info: {cookie_needed: false} 18 } 19 }; 20 21 var staticDir = new nodeStatic.Server(path.join(__dirname, '../html'), { cache: 0 }); 22 23 var server = http.createServer(); 24 server.addListener('request', function(req, res) { 25 if ( /\/slow-script.js/.test(req.url) ) { 26 res.setHeader('content-type', 'application/javascript'); 27 res.writeHead(200); 28 setTimeout(function() { 29 res.end('var a = 1;\n'); 30 }, 500); 31 } else if ( /\/streaming.txt/.test(req.url) ) { 32 res.setHeader('content-type', 'text/plain'); 33 res.setHeader('Access-Control-Allow-Origin', '*'); 34 35 res.writeHead(200); 36 res.write(new Array(2049).join('a') + '\n'); 37 setTimeout(function() { 38 res.end('b\n'); 39 }, 250); 40 } else if ( /\/simple.txt/.test(req.url) ) { 41 res.setHeader('content-type', 'text/plain'); 42 res.setHeader('Access-Control-Allow-Origin', '*'); 43 res.writeHead(200); 44 res.end(new Array(2049).join('a') + '\nb\n'); 45 } else if (req.url === '/config.js') { 46 if (req.headers.referer) { 47 var parsedOrigin = url.parse(req.headers.referer); 48 clientOptions.url = parsedOrigin.protocol + '//' + parsedOrigin.hostname + ':' + port; 49 } 50 res.setHeader('content-type', 'application/javascript'); 51 res.writeHead(200); 52 res.end('var clientOptions = ' + 53 JSON.stringify(clientOptions) + ';'); 54 } else if (req.url === '/domain.js') { 55 res.setHeader('content-type', 'application/javascript'); 56 res.writeHead(200); 57 res.end('document.domain = document.domain;'); 58 } else { 59 staticDir.serve(req, res); 60 } 61 }); 62 server.addListener('upgrade', function(req, res){ 63 console.log('upgrade kill'); 64 res.end(); 65 }); 66 67 sockjs.install({ 68 sockjs_url: '/lib/sockjs.js', 69 websocket: true, 70 log: function (severity, message) { 71 debug('[%s] %s', severity, message); 72 } 73 }, server); 74 75 console.log(' [*] Listening on', port); 76 server.listen(port);