swish-http
Version:
A Swish implementation that tunnels over HTTP
38 lines (34 loc) • 1.08 kB
JavaScript
var path = require('path');
var FileBrute = require('swish-file-brute');
var HttpStore = require('../');
var express = require('express'), app = express();
app.use(express.static(__dirname));
var testSuiteFile = require.resolve('swish-test-suite');
app.get('/swish-test-suite.js', function (request, response) {
response.sendFile(testSuiteFile);
});
app.get('/swish-http.js', function (request, response) {
response.sendFile(path.join(__dirname, '../client.js'));
});
var storeCounter = 0;
app.post('/new-store', function (request, response) {
var path = '/store/' + (storeCounter++);
var store = new FileBrute();
var httpStore = new HttpStore(store);
app.use(path, httpStore.express());
response.json(path);
});
var port = 9012, portAttempts = 10;
function tryPort(error) {
if (portAttempts-- <= 0) {
throw error;
}
app.listen(port, function (error) {
if (error) {
port = Math.floor(Math.random()*65536);
tryPort(error);
}
console.log('Listening on :' + port);
})
}
tryPort();