Zeronode has 4 events:
import { Node, NodeEvent } from 'zeronode'
node.on(NodeEvent.PEER_JOINED, ({ peerId, direction, peerOptions }) => {})
node.on(NodeEvent.PEER_LEFT, ({ peerId, direction, reason }) => {})
node.on(NodeEvent.ERROR, ({ source, error }) => {})
node.on(NodeEvent.STOPPED, () => {})A peer connected.
node.on(NodeEvent.PEER_JOINED, ({ peerId, direction, peerOptions }) => {
// direction: 'upstream' (we connected to them) or 'downstream' (they connected to us)
// peerOptions: peer metadata
})A peer disconnected.
node.on(NodeEvent.PEER_LEFT, ({ peerId, direction, reason }) => {
// reason: 'TIMEOUT', 'not_ready', 'server_left', etc.
// Always handle this to clean up resources
})An error occurred.
node.on(NodeEvent.ERROR, ({ source, error }) => {
console.error(`Error from ${source}:`, error.message)
})
node.on('error', (err) => {
// Always add error handler to prevent crashes
})Node stopped.
node.on(NodeEvent.STOPPED, () => {
console.log('Stopped')
})import { Node, NodeEvent } from 'zeronode'
const node = new Node({ id: 'my-node', bind: 'tcp://0.0.0.0:5000' })
node.on(NodeEvent.PEER_JOINED, ({ peerId }) => console.log(`🤝 ${peerId} joined`))
node.on(NodeEvent.PEER_LEFT, ({ peerId }) => console.log(`👋 ${peerId} left`))
node.on(NodeEvent.ERROR, ({ error }) => console.error(`❌ ${error.message}`))
node.on(NodeEvent.STOPPED, () => console.log('🛑 Stopped'))
node.on('error', (err) => {
if (err.code !== 'NO_NODES_MATCH_FILTER') console.error(err)
})That's it! 🎉