HOW can I use NEXT built in Socket Server instead of using Socket.io.
Unanswered
Western yellowjacket posted this in #help-forum
Western yellowjacketOP
Here I am using a external library socket.io but I want to use next built in socket that is available in res.socket.
How can I make it listen connections and events.
How can I make it listen connections and events.
import http from "http";
import { AppNextApiRequest, NextSocketApiResponse } from "@app/types";
import { createApiHandler } from "@app/utils/createa-api-handler";
import { Server } from "socket.io";
const PORT = Number(process.env.PORT || "3000");
const SOCKET_PORT = PORT + 1;
const handler = createApiHandler();
function getSocket(req: AppNextApiRequest, res: NextSocketApiResponse) {
if (res.socket.server.io) {
res?.status(200).json({ success: true, message: "Socket is already running", port::${SOCKET_PORT}});
return;
}
const server = http.createServer();
const io = new Server(server);
io.on("connect", (socket) => {
socket.broadcast.emit("welcome",Welcome ${socket.id});
socket.on("disconnect", async () => {
console.log(Socket disconnected: ${socket.id});
});
});
server.listen(SOCKET_PORT, () => {
console.log("Listening Socket Server at port: ", SOCKET_PORT);
});
res.socket.server.io = io;
res.status(201).json({ success: true, message: "Socket is started", port::${SOCKET_PORT}});
}
handler.get(getSocket);
export default handler;