🤝 Build instant multiplayer webapps, no server required — Magic WebRTC matchmaking over BitTorrent, Nostr, MQTT, IPFS, and Firebase
relayUrls
and relayRedundancy
options, so there is shared terminology across strategies and a smaller configuration API. These strategies also expose a getRelaySockets()
function that returns a map of URLs to WebSockets.trackerUrls
has been renamed relayUrls
trackerRedundancy
has been renamed relayRedundancy
getTrackers()
has been renamed getRelaySockets()
brokerUrls
has been renamed relayUrls
brokerRedundancy
has been renamed relayRedundancy
swarmAddresses
in IPFS config has been replaced by libp2pConfig
firebase@^10.6.0
getOccupants()
joinRoom()
and makeAction()
are now idempotent when called with the same namespaces which allows you to use them as React hooks. See the readme for details. Thanks to @rogersanick for proposing a solution.databaseURL
as the appId
to joinRoom()
(either with or without the https://
prefix), e.g. 'trystero-demo.firebaseio.com
, not just 'trystero-demo'
. This allows support for other regions which use different url structures. Thanks to @matthewjumpsoffbuildings for diagnosing and proposing a fix.getTrackers()
(🌊 BitTorrent only) Returns an object of BitTorrent tracker URL keys mapped to their WebSocket connections. This can be useful for determining the state of the user's connection to the trackers and handling any connection failures. (Thanks to @jeremyckahn for implementing)getPeers()
now returns a map of peer IDs to underlying RTCPeerConnection
objects, previously returned an array of IDs (credit to @jeremyckahn for implementing)