Skip to main content

Utilities

socket-serve provides several utility modules to extend functionality:

Available Utilities

Middleware

Chain middleware functions for request processing, authentication, and validation.
import { createMiddleware } from 'socket-serve/utils/middleware';
Learn more →

Presence Tracking

Track online users and their status in real-time.
import { PresenceManager } from 'socket-serve/utils/presence';
Learn more →

Compression

Automatic message compression for large payloads.
import { compress, decompress } from 'socket-serve/utils/compression';
Learn more →

Binary Data

Handle binary data transmission efficiently.
import { encodeBinary, decodeBinary } from 'socket-serve/utils/binary';
Learn more →

Namespaces

Organize sockets into logical namespaces.
import { createNamespace } from 'socket-serve/utils/namespace';
Learn more →

Usage Example

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);

Next Steps