Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/gun/gun.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gun/sea.js"></script>
  </body>
</html>
 
localStorage.clear();
// Helper function just so we're 100% sure each put runs one after the other
Gun.chain.thenPut = function (i) {
  let gun = this
  return new Promise(resolve => {
    gun.put(i, ()=> resolve(null))
  })
}
function makePeerFrom(gun) {
  let { mesh, pid } = gun.back("opt"), peer = {
     id: pid,
     wire: {
       send(msg) { if (msg) mesh.hear(msg, peer); }
     }
  }
  return peer
}
function doPeering(gun1, gun2) {
   let [peer1, peer2] = [makePeerFrom(gun1), makePeerFrom(gun2)]
   let [{mesh: mesh1}, {mesh: mesh2}] = [gun1.back("opt"), gun2.back("opt")]
   mesh1.hi(peer2)
   mesh2.hi(peer1)
}
async function main() {
  // You'd want to use multiple guns if you're using multiple users
  let mainGun = new Gun().get('node').get('key')
  let sideGun = new Gun().get('node').get('key')
  doPeering(mainGun, sideGun)
  
  await mainGun.thenPut(false)
  await sideGun.thenPut(true)
  console.log(localStorage['gun/'])
  console.log(await mainGun)
  console.log(await sideGun)
}
main()
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
dirtbollpro
0viewers