Attempting to make the peerjs server replaceable

pull/313/head
fabawi 5 months ago
parent 3fb178554a
commit fada6bb61e

@ -3,20 +3,17 @@ const express = require('express')
const { ExpressPeerServer } = require('peer') const { ExpressPeerServer } = require('peer')
const app = express(); const app = express();
const server = app.listen(9000); const port = process.env.PEERJS_PORT || 9000;
const server = app.listen(port);
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 peerServer = ExpressPeerServer(server, { 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) app.use('/peerjs', peerServer)
console.log(`PeerJS server running on port ${port} with path ${process.env.PEERJS_PATH || '/myapp'}`)

@ -8,7 +8,7 @@ HOST_DOMAIN=filepizza.example.com
# PeerJS URL and Redis PORT # PeerJS URL and Redis PORT
# REDIS_PORT=6379 # REDIS_PORT=6379
# PEERJS_SERVERS=peerjs.mydomain:9000 # PEERJS_SERVERS=https://peerjs.example.com/peerjs/myapp
# CORS Configuration # CORS Configuration
API_ORIGINS=https://filepizza.example.com,https://myapp.example.com,http://localhost:8081 API_ORIGINS=https://filepizza.example.com,https://myapp.example.com,http://localhost:8081

@ -0,0 +1,9 @@
import { NextResponse } from 'next/server'
export async function GET(): Promise<NextResponse> {
const peerServers = process.env.PEERJS_SERVERS
? process.env.PEERJS_SERVERS.split(',').map(url => url.trim())
: [];
return NextResponse.json({ servers: peerServers });
}

@ -58,10 +58,14 @@ async function getOrCreateGlobalPeer(): Promise<Peer> {
secure: serverUrl.protocol === 'https:', secure: serverUrl.protocol === 'https:',
} }
console.log('[WebRTCProvider] Using custom PeerJS server:', peerConfig) 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) { } 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) globalPeer = new Peer(peerConfig)
@ -121,4 +125,4 @@ export default function WebRTCPeerProvider({
return ( return (
<WebRTCContext.Provider value={value}>{children}</WebRTCContext.Provider> <WebRTCContext.Provider value={value}>{children}</WebRTCContext.Provider>
) )
} }
Loading…
Cancel
Save