Package Exports
- @libp2p/webrtc-star
Readme
js-libp2p-webrtc-star
libp2p WebRTC transport
Table of Contents
Description
libp2p-webrtc-star is one of the WebRTC transports available for libp2p.
Install
> npm install libp2p-webrtc-starUsage
Using this module in Node.js (read: not in the browser)
To use this module in Node.js, you have to BYOI of WebRTC, there are multiple options out there, unfortunately, none of them are 100% solid. The ones we recommend are: wrtc and electron-webrtc.
Instead of just creating the WebRTCStar instance without arguments, you need to pass an options object with the WebRTC implementation:
import wrtc from 'wrtc'
import electronWebRTC from 'electron-webrtc'
import { WebRTCStar } from '@libp2p/webrtc-star'
// Using wrtc
const ws1 = new WebRTCStar({ wrtc: wrtc })
// Using electron-webrtc
const ws2 = new WebRTCStar({ wrtc: electronWebRTC() })Using this module in the Browser
import { WebRTCStar } from '@libp2p/webrtc-star'
import { Multiaddr } from '@multiformats/multiaddr'
import all from 'it-all'
const addr = multiaddr('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
const ws = new WebRTCStar({ upgrader })
const listener = ws.createListener((socket) => {
console.log('new connection opened')
pipe(
['hello'],
socket
)
})
await listener.listen(addr)
console.log('listening')
const socket = await ws.dial(addr)
const values = await all(socket)
console.log(`Value: ${values.toString()}`)
// Close connection after reading
await listener.close()Signalling server
This module has an accompanying signalling server which is used to discover other peers running the libp2p-webrtc-star transport.
Please see the libp2p-webrtc-star-signalling-server module for more information.


