Vercel Functions can now serve WebSocket connections, enabling bidirectional communication between clients and server-side code on Vercel.
Use WebSockets for realtime features such as interactive AI streaming, chat, and collaborative apps.
WebSocket connections run Fluid compute and follow the same limits and pricing as other Function invocations. With Active CPU pricing, billing only applies to the time your Function spends processing messages, not idle connection time.
You can serve WebSocket connections using standard Node.js libraries, with no additional configuration:
import express from 'express';import { createServer } from 'http';import { WebSocketServer } from 'ws';
const app = express();const server = createServer(app);const wss = new WebSocketServer({ server });
wss.on('connection', (ws) => { ws.on('message', (data) => { ws.send(data); });});
export default server;Node.js WebSocket server using Express and the ws library, deployed as a Vercel Function
Higher-level libraries like Socket.IO are also supported.
Read the documentation to get started.