mirror of
https://github.com/fluencelabs/js-libp2p-websockets
synced 2025-04-24 20:12:32 +00:00
* feat: custom address filter BREAKING CHANGE: Only DNS+WSS addresses are now returned on filter by default in the browser. This can be overritten by the filter option and filters are provided in the module.
4.0 KiB
4.0 KiB
js-libp2p-websockets
JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport interface
Lead Maintainer
Description
libp2p-websockets
is the WebSockets implementation compatible with libp2p.
Usage
Install
npm
> npm i libp2p-websockets
Constructor properties
const WS = require('libp2p-websockets')
const properties = {
upgrader,
filter
}
const ws = new WS(properties)
Name | Type | Description | Default |
---|---|---|---|
upgrader | Upgrader |
connection upgrader object with upgradeOutbound and upgradeInbound |
REQUIRED |
filter | (multiaddrs: Array<Multiaddr>) => Array<Multiaddr> |
override transport addresses filter | Browser: DNS+WSS multiaddrs / Node.js: DNS+{WS, WSS} multiaddrs |
You can create your own address filters for this transports, or rely in the filters provided.
The available filters are:
filters.all
- Returns all TCP and DNS based addresses, both with
ws
orwss
.
- Returns all TCP and DNS based addresses, both with
filters.dnsWss
- Returns all DNS based addresses with
wss
.
- Returns all DNS based addresses with
filters.dnsWsOrWss
- Returns all DNS based addresses, both with
ws
orwss
.
- Returns all DNS based addresses, both with
Libp2p Usage Example
const Libp2p = require('libp2p')
const Websockets = require('libp2p-websockets')
const filters = require('libp2p-websockets/src/filters')
const MPLEX = require('libp2p-mplex')
const { NOISE } = require('libp2p-noise')
const transportKey = Websockets.prototype[Symbol.toStringTag]
const node = await Libp2p.create({
modules: {
transport: [Websockets],
streamMuxer: [MPLEX],
connEncryption: [NOISE]
},
config: {
transport: {
[transportKey]: { // Transport properties -- Libp2p upgrader is automatically added
filter: filters.dnsWsOrWss
}
}
}
})
For more information see libp2p/js-libp2p/doc/CONFIGURATION.md#customizing-transports.