로그인 전까지 기능
This commit is contained in:
51
server/src/index.ts
Normal file
51
server/src/index.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import http from 'http'
|
||||
import express from 'express'
|
||||
import cors from 'cors'
|
||||
import { WebSocketServer } from 'ws'
|
||||
import meetingsRouter from './routes/meetings.js'
|
||||
import answerSuggestionsRouter from './routes/answerSuggestions.js'
|
||||
import { runMigrations } from './migrate.js'
|
||||
|
||||
const app = express()
|
||||
app.use(cors())
|
||||
app.use(express.json({ limit: '2mb' }))
|
||||
|
||||
app.get('/api/health', (_req, res) => {
|
||||
res.json({ ok: true })
|
||||
})
|
||||
|
||||
app.use('/api/meetings', meetingsRouter)
|
||||
app.use('/api/answer_suggestions', answerSuggestionsRouter)
|
||||
|
||||
const server = http.createServer(app)
|
||||
const wss = new WebSocketServer({ server })
|
||||
|
||||
function broadcast(data: unknown) {
|
||||
const payload = JSON.stringify(data)
|
||||
for (const client of wss.clients) {
|
||||
if (client.readyState === client.OPEN) {
|
||||
client.send(payload)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
app.locals.broadcast = broadcast
|
||||
|
||||
wss.on('connection', (socket) => {
|
||||
socket.send(JSON.stringify({ type: 'connected' }))
|
||||
})
|
||||
|
||||
const port = Number(process.env.PORT || 4000)
|
||||
|
||||
runMigrations()
|
||||
.then(() => {
|
||||
server.listen(port, () => {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Server listening on ${port}`)
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error('Migration failed:', err)
|
||||
process.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user