UNPKG

peerpigeon

Version:

WebRTC-based peer-to-peer mesh networking library with intelligent routing and signaling server

53 lines (45 loc) • 1.47 kB
#!/usr/bin/env node import { PeerPigeonServer } from './index.js'; /** * Standalone PeerPigeon WebSocket Server * * Environment variables: * - PORT: Server port (default: 3000) * - HOST: Server host (default: localhost) * - MAX_CONNECTIONS: Maximum connections (default: 1000) * - CORS_ORIGIN: CORS origin (default: *) * - HUB_MESH_NAMESPACE: Hub network namespace (default: pigeonhub-mesh) */ const port = parseInt(process.env.PORT || '3000', 10); const host = process.env.HOST || 'localhost'; const maxConnections = parseInt(process.env.MAX_CONNECTIONS || '1000', 10); const corsOrigin = process.env.CORS_ORIGIN || '*'; const hubMeshNamespace = process.env.HUB_MESH_NAMESPACE || 'pigeonhub-mesh'; const server = new PeerPigeonServer({ port, host, maxConnections, corsOrigin, hubMeshNamespace, isHub: false // Regular signaling server by default }); // Handle errors server.on('error', (error) => { console.error('āŒ Server error:', error); }); // Handle shutdown gracefully process.on('SIGINT', async () => { console.log('\nšŸ›‘ Received SIGINT, shutting down gracefully...'); await server.stop(); process.exit(0); }); process.on('SIGTERM', async () => { console.log('\nšŸ›‘ Received SIGTERM, shutting down gracefully...'); await server.stop(); process.exit(0); }); // Start the server server.start().catch((error) => { console.error('āŒ Failed to start server:', error); process.exit(1); });