mirror of
https://github.com/fluencelabs/js-libp2p-websockets
synced 2025-04-25 22:42:35 +00:00
Merge pull request #11 from diasdavid/fix-close
fix: improve close handling
This commit is contained in:
commit
34630cad98
@ -3,6 +3,7 @@ language: node_js
|
|||||||
node_js:
|
node_js:
|
||||||
- 4
|
- 4
|
||||||
- 5
|
- 5
|
||||||
|
- stable
|
||||||
|
|
||||||
# Make sure we have new NPM.
|
# Make sure we have new NPM.
|
||||||
before_install:
|
before_install:
|
||||||
@ -11,6 +12,7 @@ before_install:
|
|||||||
script:
|
script:
|
||||||
- npm run lint
|
- npm run lint
|
||||||
- npm test
|
- npm test
|
||||||
|
- npm run coverage
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
firefox: 'latest'
|
firefox: 'latest'
|
||||||
@ -18,3 +20,6 @@ addons:
|
|||||||
before_script:
|
before_script:
|
||||||
- export DISPLAY=:99.0
|
- export DISPLAY=:99.0
|
||||||
- sh -e /etc/init.d/xvfb start
|
- sh -e /etc/init.d/xvfb start
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- npm run coverage-publish
|
||||||
|
12
circle.yml
Normal file
12
circle.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
machine:
|
||||||
|
node:
|
||||||
|
version: stable
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
pre:
|
||||||
|
- google-chrome --version
|
||||||
|
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
||||||
|
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
|
||||||
|
- sudo apt-get update
|
||||||
|
- sudo apt-get --only-upgrade install google-chrome-stable
|
||||||
|
- google-chrome --version
|
@ -12,7 +12,9 @@
|
|||||||
"build": "gulp build",
|
"build": "gulp build",
|
||||||
"release": "gulp release",
|
"release": "gulp release",
|
||||||
"release-minor": "gulp release --type minor",
|
"release-minor": "gulp release --type minor",
|
||||||
"release-major": "gulp release --type major"
|
"release-major": "gulp release --type major",
|
||||||
|
"coverage": "gulp coverage",
|
||||||
|
"coverage-publish": "aegir-coverage publish"
|
||||||
},
|
},
|
||||||
"pre-commit": [
|
"pre-commit": [
|
||||||
"lint",
|
"lint",
|
||||||
@ -34,11 +36,12 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mafmt": "^1.0.1",
|
"mafmt": "^1.0.1",
|
||||||
"multiaddr": "^1.1.1",
|
"multiaddr": "^1.1.1",
|
||||||
|
"run-parallel": "^1.1.6",
|
||||||
"simple-websocket": "github:diasdavid/simple-websocket#ec31437"
|
"simple-websocket": "github:diasdavid/simple-websocket#ec31437"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^3.5.0",
|
"chai": "^3.5.0",
|
||||||
"aegir": "^2.0.0",
|
"aegir": "^3.0.1",
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^3.9.1",
|
||||||
"interface-connection": "0.0.3",
|
"interface-connection": "0.0.3",
|
||||||
"interface-transport": "^0.1.1",
|
"interface-transport": "^0.1.1",
|
||||||
@ -49,4 +52,4 @@
|
|||||||
"Francisco Baio Dias <xicombd@gmail.com>",
|
"Francisco Baio Dias <xicombd@gmail.com>",
|
||||||
"dignifiedquire <dignifiedquire@gmail.com>"
|
"dignifiedquire <dignifiedquire@gmail.com>"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
13
src/index.js
13
src/index.js
@ -4,6 +4,7 @@ const debug = require('debug')
|
|||||||
const log = debug('libp2p:websockets')
|
const log = debug('libp2p:websockets')
|
||||||
const SWS = require('simple-websocket')
|
const SWS = require('simple-websocket')
|
||||||
const mafmt = require('mafmt')
|
const mafmt = require('mafmt')
|
||||||
|
const parallel = require('run-parallel')
|
||||||
|
|
||||||
exports = module.exports = WebSockets
|
exports = module.exports = WebSockets
|
||||||
|
|
||||||
@ -64,14 +65,10 @@ function WebSockets () {
|
|||||||
log('Called close with no active listeners')
|
log('Called close with no active listeners')
|
||||||
return callback()
|
return callback()
|
||||||
}
|
}
|
||||||
var count = 0
|
|
||||||
listeners.forEach((listener) => {
|
parallel(listeners.map((listener) => {
|
||||||
listener.close(() => {
|
return (cb) => listener.close(cb)
|
||||||
if (++count === listeners.length) {
|
}), callback)
|
||||||
callback()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.filter = (multiaddrs) => {
|
this.filter = (multiaddrs) => {
|
||||||
|
16
test/node.js
16
test/node.js
@ -20,9 +20,7 @@ describe('libp2p-websockets', function () {
|
|||||||
ws.createListener(mh, (socket) => {
|
ws.createListener(mh, (socket) => {
|
||||||
expect(socket).to.exist
|
expect(socket).to.exist
|
||||||
socket.end()
|
socket.end()
|
||||||
ws.close(() => {
|
ws.close(done)
|
||||||
done()
|
|
||||||
})
|
|
||||||
}, () => {
|
}, () => {
|
||||||
const conn = ws.dial(mh)
|
const conn = ws.dial(mh)
|
||||||
conn.end()
|
conn.end()
|
||||||
@ -45,9 +43,7 @@ describe('libp2p-websockets', function () {
|
|||||||
expect(socket).to.exist
|
expect(socket).to.exist
|
||||||
socket.end()
|
socket.end()
|
||||||
expect(socket.getObservedAddrs()).to.deep.equal([])
|
expect(socket.getObservedAddrs()).to.deep.equal([])
|
||||||
ws.close(() => {
|
ws.close(done)
|
||||||
done()
|
|
||||||
})
|
|
||||||
}, () => {
|
}, () => {
|
||||||
const conn = ws.dial(mh)
|
const conn = ws.dial(mh)
|
||||||
conn.end()
|
conn.end()
|
||||||
@ -76,9 +72,7 @@ describe('libp2p-websockets', function () {
|
|||||||
conn.on('data', (data) => {
|
conn.on('data', (data) => {
|
||||||
expect(data.toString()).to.equal(message)
|
expect(data.toString()).to.equal(message)
|
||||||
conn.end()
|
conn.end()
|
||||||
ws.close(() => {
|
ws.close(done)
|
||||||
done()
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -99,9 +93,7 @@ describe('libp2p-websockets', function () {
|
|||||||
conn.on('data', (data) => {
|
conn.on('data', (data) => {
|
||||||
expect(data.toString()).to.equal(message)
|
expect(data.toString()).to.equal(message)
|
||||||
conn.end()
|
conn.end()
|
||||||
ws.close(() => {
|
ws.close(done)
|
||||||
done()
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user