47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
const express = require("express");
|
|
const http = require("http");
|
|
const socketIo = require("socket.io");
|
|
|
|
const app = express();
|
|
const server = http.createServer(app);
|
|
const io = socketIo(server, {
|
|
cors: {
|
|
origin: "*",
|
|
methods: ["GET", "POST"]
|
|
}
|
|
});
|
|
|
|
const port = 3005;
|
|
|
|
app.use(express.static("public"));
|
|
|
|
// WebSocket-Verbindungen verwalten
|
|
io.on("connection", (socket) => {
|
|
console.log("Client connected:", socket.id);
|
|
|
|
// Teleskop-Position broadcaasting
|
|
socket.on("telescope-position", (data) => {
|
|
// An alle anderen Clients weiterleiten (außer Sender)
|
|
socket.broadcast.emit("telescope-position", data);
|
|
});
|
|
|
|
// Kuppel-Position broadcasting
|
|
socket.on("dome-position", (data) => {
|
|
socket.broadcast.emit("dome-position", data);
|
|
});
|
|
|
|
// Teleskop-Steuerung
|
|
socket.on("telescope-control", (data) => {
|
|
io.emit("telescope-control", data);
|
|
});
|
|
|
|
socket.on("disconnect", () => {
|
|
console.log("Client disconnected:", socket.id);
|
|
});
|
|
});
|
|
|
|
server.listen(port, () => {
|
|
console.log(`Observatory simulation running at http://localhost:${port}`);
|
|
console.log("WebSocket server is ready for telescope and dome communication");
|
|
});
|