diff --git a/bin/peerjs.js b/bin/peerjs.js index af54fb7..2893625 100755 --- a/bin/peerjs.js +++ b/bin/peerjs.js @@ -3,20 +3,17 @@ const express = require('express') const { ExpressPeerServer } = require('peer') const app = express(); -const server = app.listen(9000); - -const peerServers = process.env.PEERJS_SERVERS - ? process.env.PEERJS_SERVERS.split(',').map(url => url.trim()) - : []; - -if (peerServers.length > 0) { - app.use('/api/peerjs-servers', (req, res) => { - res.json({ servers: peerServers }); - }); -} +const port = process.env.PEERJS_PORT || 9000; +const server = app.listen(port); const peerServer = ExpressPeerServer(server, { - path: '/filepizza' + path: process.env.PEERJS_PATH || '/myapp', + key: process.env.PEERJS_KEY || 'peerjs', + proxied: process.env.PEERJS_PROXIED === 'true', + allow_discovery: process.env.PEERJS_ALLOW_DISCOVERY === 'true', + concurrent_limit: parseInt(process.env.PEERJS_CONCURRENT_LIMIT || '5000') }) -app.use('/peerjs', peerServer) \ No newline at end of file +app.use('/peerjs', peerServer) + +console.log(`PeerJS server running on port ${port} with path ${process.env.PEERJS_PATH || '/myapp'}`) \ No newline at end of file diff --git a/envfile b/envfile index f4ae1f4..fca4156 100644 --- a/envfile +++ b/envfile @@ -8,7 +8,7 @@ HOST_DOMAIN=filepizza.example.com # PeerJS URL and Redis PORT # REDIS_PORT=6379 -# PEERJS_SERVERS=peerjs.mydomain:9000 +# PEERJS_SERVERS=https://peerjs.example.com/peerjs/myapp # CORS Configuration API_ORIGINS=https://filepizza.example.com,https://myapp.example.com,http://localhost:8081 diff --git a/src/app/api/peerjs-servers/route.ts b/src/app/api/peerjs-servers/route.ts new file mode 100644 index 0000000..78bd43a --- /dev/null +++ b/src/app/api/peerjs-servers/route.ts @@ -0,0 +1,9 @@ +import { NextResponse } from 'next/server' + +export async function GET(): Promise { + const peerServers = process.env.PEERJS_SERVERS + ? process.env.PEERJS_SERVERS.split(',').map(url => url.trim()) + : []; + + return NextResponse.json({ servers: peerServers }); +} \ No newline at end of file diff --git a/src/components/WebRTCProvider.tsx b/src/components/WebRTCProvider.tsx index c05902d..f4b7520 100644 --- a/src/components/WebRTCProvider.tsx +++ b/src/components/WebRTCProvider.tsx @@ -58,10 +58,14 @@ async function getOrCreateGlobalPeer(): Promise { secure: serverUrl.protocol === 'https:', } console.log('[WebRTCProvider] Using custom PeerJS server:', peerConfig) + } else { + console.log('[WebRTCProvider] No custom PeerJS servers configured, using default') } + } else { + console.log('[WebRTCProvider] Failed to fetch PeerJS servers, using default') } } catch (error) { - console.log('[WebRTCProvider] No custom PeerJS servers configured, using default') + console.log('[WebRTCProvider] Error fetching PeerJS servers, using default:', error) } globalPeer = new Peer(peerConfig) @@ -121,4 +125,4 @@ export default function WebRTCPeerProvider({ return ( {children} ) -} +} \ No newline at end of file