ship/ship.js

49 lines
1.5 KiB
JavaScript

// project
// 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,
});
});