import { SocketServer } from 'socket-serve/server';
import { PresenceManager } from 'socket-serve/utils/presence';
import { createMiddleware } from 'socket-serve/utils/middleware';
const server = new SocketServer({
redisUrl: process.env.REDIS_URL!,
});
// Use presence tracking
const presence = new PresenceManager(server);
presence.onJoin((userId, metadata) => {
console.log(`User ${userId} is now online`);
});
// Use middleware
const authMiddleware = createMiddleware(async (socket, next) => {
const token = socket.get('token');
if (isValidToken(token)) {
next();
} else {
next(new Error('Authentication failed'));
}
});
server.use(authMiddleware);