48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
// const {sequelize, DataTypes} = require('./db/sql_connection');
|
|
require('dotenv').config({ path: require('node:path').resolve(process.cwd(), '.env') });
|
|
const APP_BASE_PATH = process.env.APP_BASE_PATH || "";
|
|
const express = require("express");
|
|
const app = express(); //
|
|
// const fs = require("fs");
|
|
const http = require("http").createServer(app);
|
|
const io = require("socket.io")(http);
|
|
// const path = require("path");
|
|
|
|
var id = [];
|
|
var obj_collection = {};
|
|
|
|
http.listen(process.env.PORT, process.env.HOST, function () {
|
|
console.log("game server is started");
|
|
})
|
|
|
|
io.on("connection", function (socket) {
|
|
console.log("user " + socket.id + " is connected");
|
|
socket.on("mouseclick", (coords) => {
|
|
console.log("coords");
|
|
console.log(coords);
|
|
socket.broadcast.emit("coords", coords);
|
|
id[socket.id] = coords.id;
|
|
obj_collection[coords.id] = coords;
|
|
})
|
|
socket.on("disconnect", () => {
|
|
console.log("user " + socket.id + " is disconnected");
|
|
socket.broadcast.emit("remove", id[socket.id]);
|
|
|
|
delete obj_collection[id[socket.id]];
|
|
delete id[socket.id];
|
|
})
|
|
socket.on("loaded", () => {
|
|
console.log("loaded");
|
|
io.emit("send_objects", obj_collection);
|
|
})
|
|
})
|
|
|
|
app.set("view engine", "ejs");
|
|
app.use(express.static("public"));
|
|
app.use(express.json({extended: false}));
|
|
app.get("/", (req, res) => {
|
|
res.render("game", {
|
|
base_path: APP_BASE_PATH,
|
|
});
|
|
});
|