feat: WebSocket durch Socket.io

This commit is contained in:
Ismail Ali
2025-06-07 07:32:14 +02:00
parent 368f1ae095
commit a55b5b0189
5 changed files with 587 additions and 317 deletions

View File

@@ -1,27 +1,36 @@
// server.js
const { createServer } = require("http");
const express = require("express");
const http = require("http");
const next = require("next");
const WebSocket = require("ws");
const { Server } = require("socket.io");
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = createServer((req, res) => handle(req, res));
const expressApp = express();
const server = http.createServer(expressApp);
const io = new Server(server);
const wss = new WebSocket.Server({ server });
// WebSocket-Logik
io.on("connection", socket => {
console.log("✅ Client verbunden via socket.io");
wss.on("connection", ws => {
console.log("✅ Client verbunden via WS");
ws.send("Hallo vom WS-Server");
ws.on("message", msg => {
console.log("💬 Nachricht vom Client:", msg.toString());
socket.on("message", data => {
console.log("💬 Nachricht vom Client:", data);
});
socket.emit("message", { message: "Hallo vom socket.io Server" });
});
server.listen(3000, () => {
console.log("🚀 Server mit WS läuft auf http://localhost:3000");
// Next.js Routen
expressApp.all("*", (req, res) => {
return handle(req, res);
});
server.listen(port, () => {
console.log(`🚀 Server mit socket.io läuft auf http://localhost:${port}`);
});
});