0.1.4 • Published 4 years ago
@hideoutchat/web-sdk v0.1.4
Hideout SDK for Web Browsers
This library includes all the necessary pieces for communicating on the Hideout network from within a modern web browser.
Installing
Using Yarn: yarn add @hideoutchat/web-sdk.
Using NPM: npm install @hideoutchat/web-sdk.
Usage
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'
});