diff --git a/demo/server.coffee b/demo/server.coffee index 9c89806..da331a0 100644 --- a/demo/server.coffee +++ b/demo/server.coffee @@ -26,7 +26,7 @@ paparazzo.start() http.createServer (req, res) -> data = '' path = url.parse(req.url).pathname - + if path == '/camera' and updatedImage? data = updatedImage console.log "Will serve image of #{data.length} bytes" diff --git a/src/paparazzo.coffee b/src/paparazzo.coffee index 0b9b08e..2dc427f 100644 --- a/src/paparazzo.coffee +++ b/src/paparazzo.coffee @@ -15,6 +15,7 @@ EventEmitter = require('events').EventEmitter class Paparazzo extends EventEmitter @image = '' + @request = null imageExpectedLength = -1 constructor: (options) -> @@ -33,7 +34,7 @@ class Paparazzo extends EventEmitter # To use EventEmitter in the callback, we must save our instance 'this' emitter = @ - request = http.get @options, (response) -> + @request = http.get @options, (response) -> if response.statusCode != 200 emitter.emit 'error', @@ -49,11 +50,18 @@ class Paparazzo extends EventEmitter emitter.emit 'error', message: "Server closed connection!" - request.on 'error', (error) -> + @request.on 'error', (error) -> # Failed to connect emitter.emit 'error', message: error.message + stop: -> + if @request? + @request.removeAllListeners 'error' + @request.removeAllListeners 'data' + @request.removeAllListeners 'end' + @request.abort() + ### # # Find out the boundary string that delimits images.