diff options
background - stream disconnection fix
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/background.js | 7 | ||||
-rw-r--r-- | app/scripts/lib/stream-utils.js | 9 |
2 files changed, 8 insertions, 8 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js index 18882e5d5..744a0caee 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -122,17 +122,16 @@ function setupController (initState) { // remote features // - function setupControllerConnection (stream) { - controller.stream = stream + function setupControllerConnection (outStream) { var api = controller.getApi() var dnode = Dnode(api) - stream.pipe(dnode).pipe(stream) + outStream.pipe(dnode).pipe(outStream) dnode.on('remote', (remote) => { // push updates to popup var sendUpdate = remote.sendUpdate.bind(remote) controller.on('update', sendUpdate) // teardown on disconnect - eos(stream, () => { + eos(outStream, () => { controller.removeListener('update', sendUpdate) popupIsOpen = false }) diff --git a/app/scripts/lib/stream-utils.js b/app/scripts/lib/stream-utils.js index 1b7b89d14..ba79990cc 100644 --- a/app/scripts/lib/stream-utils.js +++ b/app/scripts/lib/stream-utils.js @@ -1,4 +1,5 @@ const Through = require('through2') +const endOfStream = require('end-of-stream') const ObjectMultiplex = require('./obj-multiplex') module.exports = { @@ -24,11 +25,11 @@ function jsonStringifyStream () { function setupMultiplex (connectionStream) { var mx = ObjectMultiplex() connectionStream.pipe(mx).pipe(connectionStream) - mx.on('error', function (err) { - console.error(err) + endOfStream(mx, function (err) { + if (err) console.error(err) }) - connectionStream.on('error', function (err) { - console.error(err) + endOfStream(connectionStream, function (err) { + if (err) console.error(err) mx.destroy() }) return mx |