@@ -1,21 +1,59 @@
|
||||
import { createServer as createHttpServer } from 'node:http'
|
||||
import { createExpressMiddleware } from '@trpc/server/adapters/express'
|
||||
import { consola } from 'consola'
|
||||
import cookieParser from 'cookie-parser'
|
||||
import express from 'express'
|
||||
import * as mediasoup from 'mediasoup'
|
||||
import { Server as SocketServer } from 'socket.io'
|
||||
import { createContext } from './trpc/context'
|
||||
import { appRouter } from './trpc/routers'
|
||||
import webrtcSocket from './webrtc/socket'
|
||||
|
||||
const app = express()
|
||||
app.use(cookieParser())
|
||||
app.use(express.json())
|
||||
(async () => {
|
||||
const app = express()
|
||||
|
||||
app.use(
|
||||
'/chad/trpc',
|
||||
createExpressMiddleware({
|
||||
router: appRouter,
|
||||
createContext,
|
||||
}),
|
||||
)
|
||||
app.use(cookieParser())
|
||||
app.use(express.json())
|
||||
|
||||
app.listen(process.env.PORT || 4000, () => {
|
||||
console.log('✅ Server running')
|
||||
})
|
||||
app.use(
|
||||
'/chad/trpc',
|
||||
createExpressMiddleware({
|
||||
router: appRouter,
|
||||
createContext,
|
||||
}),
|
||||
)
|
||||
|
||||
const server = createHttpServer(app)
|
||||
|
||||
const worker = await mediasoup.createWorker()
|
||||
worker.on('died', () => {
|
||||
consola.error('[Mediasoup]', 'Worker died, exiting...')
|
||||
|
||||
process.exit(1)
|
||||
})
|
||||
|
||||
const router = await worker.createRouter({
|
||||
mediaCodecs: [
|
||||
{
|
||||
kind: 'audio',
|
||||
mimeType: 'audio/opus',
|
||||
clockRate: 48000,
|
||||
channels: 2,
|
||||
parameters: { useinbandfec: 1, stereo: 1 },
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
const io = new SocketServer(server, {
|
||||
path: '/chad/ws',
|
||||
cors: {
|
||||
origin: process.env.CORS_ORIGIN || '*',
|
||||
},
|
||||
})
|
||||
|
||||
webrtcSocket(io, router)
|
||||
|
||||
server.listen(process.env.PORT || 4000, () => {
|
||||
console.log('✅ Server running')
|
||||
})
|
||||
})()
|
||||
|
||||
Reference in New Issue
Block a user