support for addrs with ipfs in the end as well

This commit is contained in:
David Dias 2016-05-29 09:00:26 +01:00
parent 715682b173
commit 5eda5c447b
2 changed files with 13 additions and 1 deletions

View File

@ -34,6 +34,7 @@
},
"homepage": "https://github.com/diasdavid/js-libp2p-websockets#readme",
"dependencies": {
"lodash.contains": "^2.4.3",
"mafmt": "^2.1.0",
"multiaddr": "^2.0.2",
"run-parallel": "^1.1.6",
@ -52,4 +53,4 @@
"Francisco Baio Dias <xicombd@gmail.com>",
"Friedel Ziegelmayer <dignifiedquire@gmail.com>"
]
}
}

View File

@ -5,6 +5,7 @@ const log = debug('libp2p:websockets')
const SWS = require('simple-websocket')
const mafmt = require('mafmt')
const parallel = require('run-parallel')
const contains = require('lodash.contains')
exports = module.exports = WebSockets
@ -44,6 +45,10 @@ function WebSockets () {
var count = 0
multiaddrs.forEach((m) => {
if (contains(m.protoNames(), 'ipfs')) {
m = m.decapsulate('ipfs')
}
const listener = SWS.createServer((conn) => {
conn.getObservedAddrs = () => {
return [] // TODO think if it makes sense for WebSockets
@ -72,7 +77,13 @@ function WebSockets () {
}
this.filter = (multiaddrs) => {
if (!Array.isArray(multiaddrs)) {
multiaddrs = [multiaddrs]
}
return multiaddrs.filter((ma) => {
if (contains(ma.protoNames(), 'ipfs')) {
ma = ma.decapsulate('ipfs')
}
return mafmt.WebSockets.matches(ma)
})
}