import express from 'express';
import { createSocketServer } from 'socket-serve';
import { createExpressAdapter } from 'socket-serve/adapters';
const app = express();
const port = process.env.PORT || 3000;
const socketServer = createSocketServer({
redisUrl: process.env.REDIS_URL!
});
socketServer.on('connection', (socket) => {
console.log('Client connected:', socket.id);
socket.on('message', (data) => {
socket.emit('response', { echo: data });
});
socket.on('disconnect', () => {
console.log('Client disconnected:', socket.id);
});
});
// Mount socket adapter
const socketAdapter = createExpressAdapter(socketServer);
app.use('/socket', socketAdapter);
// Static files
app.use(express.static('public'));
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});