Next.js Discord

Discord Forum

How to deploy backedn to vercel

Answered
Small Greek domestic dog posted this in #help-forum
Open in Discord
Small Greek domestic dogOP
i have this code how to deploy iy on vercel

require("dotenv").config();

const express = require("express");
const http = require("http");
const { Server } = require("socket.io");
const cors = require("cors");

const app = express();
const server = http.createServer(app);

const CLIENT_URL = process.env.CLIENT_URL;
console.log("client url", CLIENT_URL);
const PORT = process.env.PORT || 5000;

app.use(cors({
origin: CLIENT_URL,
methods: ["GET", "POST"],
credentials: true
}));

const io = new Server(server, {
cors: {
origin: CLIENT_URL,
methods: ["GET", "POST"],
credentials: true
}
});

io.on("connection", (socket) => {
console.log(New client connected: ${socket.id});

socket.on("join", (room) => {
socket.join(room);
console.log(Socket ${socket.id} joined room ${room});
});

socket.on("leave", (room) => {
socket.leave(room);
console.log(Socket ${socket.id} left room ${room});
});

socket.on("getElements", ({ elements, room }) => {
console.log(Received elements for room ${room}:, elements);
socket.to(room).emit("setElements", elements);
});

socket.on("disconnect", () => {
console.log(Client disconnected: ${socket.id});
});
});

app.get("/hi", (req, res) => {
res.send(<marquee>To try the app visit: <a href="${CLIENT_URL}">${CLIENT_URL}</a></marquee>);
});

server.listen(PORT, () => {
console.log(Server listening on port ${PORT});
});
Answered by B33fb0n3
vercel itself is serverless. So you can't have a websocket server on it. You need to host it in a serverfull enviorment
View full answer

10 Replies

@Small Greek domestic dog i have this code how to deploy iy on vercel require("dotenv").config(); const express = require("express"); const http = require("http"); const { Server } = require("socket.io"); const cors = require("cors"); const app = express(); const server = http.createServer(app); const CLIENT_URL = process.env.CLIENT_URL; console.log("client url", CLIENT_URL); const PORT = process.env.PORT || 5000; app.use(cors({ origin: CLIENT_URL, methods: ["GET", "POST"], credentials: true })); const io = new Server(server, { cors: { origin: CLIENT_URL, methods: ["GET", "POST"], credentials: true } }); io.on("connection", (socket) => { console.log(`New client connected: ${socket.id}`); socket.on("join", (room) => { socket.join(room); console.log(`Socket ${socket.id} joined room ${room}`); }); socket.on("leave", (room) => { socket.leave(room); console.log(`Socket ${socket.id} left room ${room}`); }); socket.on("getElements", ({ elements, room }) => { console.log(`Received elements for room ${room}:`, elements); socket.to(room).emit("setElements", elements); }); socket.on("disconnect", () => { console.log(`Client disconnected: ${socket.id}`); }); }); app.get("/hi", (req, res) => { res.send(`<marquee>To try the app visit: <a href="${CLIENT_URL}">${CLIENT_URL}</a></marquee>`); }); server.listen(PORT, () => { console.log(`Server listening on port ${PORT}`); });
vercel itself is serverless. So you can't have a websocket server on it. You need to host it in a serverfull enviorment
Answer
@Small Greek domestic dog any options where to deploy
I like to rent a server from [netcup](https://www.netcup.de/). That is then a serverfull enviorement
Small Greek domestic dogOP
will render work
@Small Greek domestic dog will render work
of course. It's like your pc, but somewhere from someone else, that runs 24/7
Small Greek domestic dogOP
thz finally worked after taking some rest 🤌
Small Greek domestic dogOP
ya
@Small Greek domestic dog ya
Happy to help. Please mark solution
that is not the solution. I marked the correct one. You don't need to do anything