mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-14 11:41:18 +00:00
67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
const Server = require('karma').Server
|
|
const path = require('path')
|
|
|
|
const Peer = require('peer-info')
|
|
const PeerId = require('peer-id')
|
|
const WebSockets = require('libp2p-websockets')
|
|
const Swarm = require('../src')
|
|
const multiaddr = require('multiaddr')
|
|
|
|
const PEER_ID_SERVER_A = 'QmWg2L4Fucx1x4KXJTfKHGixBJvveubzcd7DdhB2Mqwfh1'
|
|
const PEER_ID_SERVER_B = 'QmRy1iU6BHmG5Hd8rnPhPL98cy1W1przUSTAMcGDq9yAAV'
|
|
const MULTIADDR_SERVER_A = '/ip4/127.0.0.1/tcp/9888/websockets'
|
|
const MULTIADDR_SERVER_B = '/ip4/127.0.0.1/tcp/9999/websockets'
|
|
|
|
var swarmA
|
|
var peerA
|
|
var swarmB
|
|
var peerB
|
|
|
|
function createServers (done) {
|
|
function createServerA (cb) {
|
|
const id = PeerId.createFromB58String(PEER_ID_SERVER_A)
|
|
peerA = new Peer(id)
|
|
peerA.multiaddr.add(multiaddr(MULTIADDR_SERVER_A))
|
|
swarmA = new Swarm(peerA)
|
|
swarmA.transport.add('ws', new WebSockets())
|
|
swarmA.transport.listen('ws', {}, (conn) => {
|
|
conn.pipe(conn)
|
|
}, cb)
|
|
}
|
|
|
|
function createServerB (cb) {
|
|
const id = PeerId.createFromB58String(PEER_ID_SERVER_B)
|
|
peerB = new Peer(id)
|
|
peerB.multiaddr.add(multiaddr(MULTIADDR_SERVER_B))
|
|
swarmB = new Swarm(peerB)
|
|
swarmB.transport.add('ws', new WebSockets())
|
|
swarmB.handle('/pineapple/1.0.0', (conn) => {
|
|
conn.pipe(conn)
|
|
})
|
|
swarmB.transport.listen('ws', {}, null, cb)
|
|
}
|
|
|
|
var count = 0
|
|
const ready = () => ++count === 2 ? done() : null
|
|
|
|
createServerA(ready)
|
|
createServerB(ready)
|
|
}
|
|
|
|
function stopServers (done) {
|
|
var count = 0
|
|
const ready = () => ++count === 2 ? done() : null
|
|
|
|
swarmA.transport.close('ws', ready)
|
|
swarmB.transport.close('ws', ready)
|
|
}
|
|
|
|
function runTests (done) {
|
|
new Server({
|
|
configFile: path.join(__dirname, '/../karma.conf.js'),
|
|
singleRun: true
|
|
}, done).start()
|
|
}
|
|
|
|
createServers(() => runTests(() => stopServers(() => null)))
|