Updates
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bare
|
||||
// Basic usage example for hyper-p2p-presence
|
||||
// Run with: bare examples/basic.js or pear run examples/basic.js
|
||||
|
||||
const HyperP2PPresence = require('../index.js')
|
||||
const bareProcess = require('bare-process')
|
||||
const { setTimeout } = require('bare-timers')
|
||||
|
||||
async function runExample() {
|
||||
console.log('🚀 Starting hyper-p2p-presence example...')
|
||||
|
||||
const presence = new HyperP2PPresence({
|
||||
topic: 'example-presence-demo-2026',
|
||||
metadata: {
|
||||
username: 'DemoAgent',
|
||||
status: 'exploring',
|
||||
version: '0.1.0'
|
||||
},
|
||||
announceInterval: 15000,
|
||||
expiry: 60000
|
||||
})
|
||||
|
||||
presence.on('ready', () => {
|
||||
console.log('✅ Presence system ready. Your public key:', presence.getSelf()?.publicKey?.slice(0, 16) + '...')
|
||||
})
|
||||
|
||||
presence.on('peer-joined', (peer) => {
|
||||
console.log('👋 Peer joined:', peer.metadata.username || peer.publicKey.slice(0, 8), 'online:', peer.online)
|
||||
})
|
||||
|
||||
presence.on('peer-left', (peer) => {
|
||||
console.log('👋 Peer left:', peer.publicKey.slice(0, 8))
|
||||
})
|
||||
|
||||
presence.on('self-presence', (self) => {
|
||||
console.log('📡 Self presence updated. Status:', self.metadata.status)
|
||||
})
|
||||
|
||||
await presence.ready()
|
||||
|
||||
// Simulate status change after 10 seconds
|
||||
setTimeout(async () => {
|
||||
console.log('🔄 Updating metadata...')
|
||||
await presence.updateMetadata({ status: 'thinking about new modules' })
|
||||
}, 10000)
|
||||
|
||||
// Keep running for demo
|
||||
console.log('Press Ctrl+C to exit gracefully...')
|
||||
|
||||
bareProcess.on('SIGINT', async () => {
|
||||
console.log('\n🛑 Shutting down presence system...')
|
||||
await presence.close()
|
||||
console.log('✅ Clean shutdown complete.')
|
||||
bareProcess.exit(0)
|
||||
})
|
||||
}
|
||||
|
||||
runExample().catch(err => {
|
||||
console.error('Example failed:', err)
|
||||
bareProcess.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user