mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-06-29 08:51:34 +00:00
feat!: limit protocol streams per-connection (#1255)
* feat: limit protocol streams per-connection Uses the `maxInboundStreams` and `maxOutboundStreams` of the `registrar.handle` opts to limit the number of concurrent streams open on each connection on a per-protocol basis. Both values default to 1 so some tuning will be necessary to set appropriate values for some protocols. * chore: make error codes consistent * chore: fix up examples
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
import { expect } from 'aegir/chai'
|
||||
import sinon from 'sinon'
|
||||
import { FetchService } from '../../src/fetch/index.js'
|
||||
import { FetchService, FetchServiceInit } from '../../src/fetch/index.js'
|
||||
import Peers from '../fixtures/peers.js'
|
||||
import { mockRegistrar, mockUpgrader, connectionPair } from '@libp2p/interface-mocks'
|
||||
import { createFromJSON } from '@libp2p/peer-id-factory'
|
||||
@ -14,8 +14,10 @@ import { TimeoutController } from 'timeout-abort-controller'
|
||||
import delay from 'delay'
|
||||
import { pipe } from 'it-pipe'
|
||||
|
||||
const defaultInit = {
|
||||
protocolPrefix: 'ipfs'
|
||||
const defaultInit: FetchServiceInit = {
|
||||
protocolPrefix: 'ipfs',
|
||||
maxInboundStreams: 1,
|
||||
maxOutboundStreams: 1
|
||||
}
|
||||
|
||||
async function createComponents (index: number) {
|
||||
@ -127,7 +129,7 @@ describe('fetch', () => {
|
||||
|
||||
// should have closed stream
|
||||
expect(newStreamSpy).to.have.property('callCount', 1)
|
||||
const { stream } = await newStreamSpy.getCall(0).returnValue
|
||||
expect(stream).to.have.nested.property('timeline.close')
|
||||
const stream = await newStreamSpy.getCall(0).returnValue
|
||||
expect(stream).to.have.nested.property('stat.timeline.close')
|
||||
})
|
||||
})
|
||||
|
Reference in New Issue
Block a user