diff --git a/examples/express-embed/package.json b/examples/express-embed/package.json new file mode 100644 index 0000000..07eceec --- /dev/null +++ b/examples/express-embed/package.json @@ -0,0 +1,13 @@ +{ + "name": "bittorrent-tracker-example-express-embed", + "version": "0.0.0", + "description": "Example for embedding bittorrent-tracker server in express.js", + "scripts": { + "server": "./server.js" + }, + "author": "Astro ", + "license": "MIT", + "dependencies": { + "express": "^4.10.5" + } +} diff --git a/examples/express-embed/server.js b/examples/express-embed/server.js new file mode 100755 index 0000000..294f013 --- /dev/null +++ b/examples/express-embed/server.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node + +var Server = require('../..').Server +var express = require('express') +var app = express() + +var server = new Server({ + http: false, // we do our own + udp: false // not interested +}) + +var onHttpRequest = server.onHttpRequest.bind(server) +app.get('/announce', onHttpRequest) +app.get('/scrape', onHttpRequest) + +app.listen(8080) diff --git a/server.js b/server.js index a194f86..e3b19eb 100644 --- a/server.js +++ b/server.js @@ -54,7 +54,7 @@ function Server (opts) { // default to starting an http server unless the user explictly says no if (opts.http !== false) { self._httpServer = http.createServer() - self._httpServer.on('request', self._onHttpRequest.bind(self)) + self._httpServer.on('request', self.onHttpRequest.bind(self)) self._httpServer.on('error', self._onError.bind(self)) self._httpServer.on('listening', onListening) } @@ -123,7 +123,7 @@ Server.prototype.getSwarm = function (infoHash) { return swarm } -Server.prototype._onHttpRequest = function (req, res) { +Server.prototype.onHttpRequest = function (req, res) { var self = this var params