Package Exports
- libp2p-webrtc-star
- libp2p-webrtc-star/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (libp2p-webrtc-star) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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-star
Usage
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:
const wrtc = require('wrtc')
const electronWebRTC = require('electron-webrtc')
const WStar = require('libp2p-webrtc-star')
// Using wrtc
const ws1 = new WStar({ wrtc: wrtc })
// Using electron-webrtc
const ws2 = new WStar({ wrtc: electronWebRTC() })
Using this module in the Browser
const WStar = require('libp2p-webrtc-star')
const multiaddr = require('multiaddr')
const all = require('it-all')
const addr = multiaddr('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
const ws = new WStar({ 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.