This library includes all the necessary pieces for communicating on the Hideout network from within a modern web browser.
Using Yarn: yarn add @hideoutchat/web-sdk
.
Using NPM: npm install @hideoutchat/web-sdk
.
import { hideout } from '@hideoutchat/web-sdk';
hideout(WebSocket).connect({
onConnect(connection) {
// Connection includes:
// * #broadcast(): Send a signed but unencrypted message to all peers.
// * #onBroadcast(): Listen for unencrypted messages from peers.
// * #onGroupEvent(): Listen for encrypted group messages from peers.
// * #onPeerEvent(): Listen for encrypted direct messages from peers.
// * #sendGroupEvent(): Send a signed and encrypted message to a group using a symmetric key.
// * #sendPeerEvent(): Send a signed and encrypted DH message to a peer.
},
onDisconnect() {
// Recommended:
// * Clean up after #onConnect()
// * Retry #connect() with exponential back-off.
},
onError(error) {
// This function gets called any time an error occurs.
// Fatal errors will also trigger #onDisconnect().
},
onPublicKey(publicKey) {
// EC384 public key in JWK JSON format
// The `kid` property should be a SHA-256 hash of the public key.
},
privateKey: {
// EC384 private key in JWK JSON format
// Generate this however you wish.
// The `kid` property should be a SHA-256 hash of the public key.
},
// The URL of a Hideout rendezvous node listening on a secure web socket
url: 'wss://example.com:1234'
});