Compare commits

...

2 Commits

  1. 49
      public/data/scripts/online.js
  2. 3
      public/data/settings/get_port.php
  3. 15
      server/package-lock.json
  4. 7
      server/package.json
  5. 4
      server/src/index.ts
  6. 18
      server/src/start.ts

@ -2,36 +2,35 @@
function socketConnect(project, name = "noone"){
let urlQueries = '?game=' + project.name + '&name=' + name;
$.get('data/settings/get_port.php', port => {
let url = 'https://' + location.hostname + ':' + port + urlQueries;
let url = 'https://' + location.hostname + urlQueries;
socket = io.connect(url, {
path: "/global-draw/"
});
socket.on('connect', () => {
console.log('Connected to ', url);
socket = io.connect(url);
socket.on('connect', () => {
console.log('Connected to ', url);
socket.emit('join-lobby', 'global-draw-room');
socket.emit('join-lobby', 'global-draw-room');
socket.on('add-line', (lobby, line) => drawer.addLine(line));
socket.on('fill-pixel', (lobby, pixel) => drawer.fillPixel(pixel));
socket.on('add-all', (lines) => drawer.onLinesLoaded(lines));
socket.on('fill-all', (pixels) => drawer.onPixelsLoaded(pixels));
socket.on('member-joined', (lobby, clientId) => {
if (clientId !== socket.id)
return;
if (drawer)
if (drawer.lines.length !== 0)
return;
socket.on('add-line', (lobby, line) => drawer.addLine(line));
socket.on('fill-pixel', (lobby, pixel) => drawer.fillPixel(pixel));
socket.on('add-all', (lines) => drawer.onLinesLoaded(lines));
socket.on('fill-all', (pixels) => drawer.onPixelsLoaded(pixels));
socket.on('member-joined', (lobby, clientId) => {
if (clientId !== socket.id)
return;
if (drawer)
if (drawer.lines.length !== 0)
return;
socket.emit('request-all-lines');
socket.emit('request-all-pixels');
$("#action").html("Downloading...");
});
socket.emit('request-all-lines');
socket.emit('request-all-pixels');
$("#action").html("Downloading...");
});
socket.on('all-saved', (_lobby) => drawer.answerServerSave());
socket.on('all-saved', (_lobby) => drawer.answerServerSave());
updateDrawType($("input[type=radio][name=type]:checked").val());
});
});
updateDrawType($("input[type=radio][name=type]:checked").val());
});
}
function sendFeedback(){

@ -1,3 +0,0 @@
<?php
echo parse_ini_file("../../../server/.env")["HTTPS_PORT"];

@ -1,15 +1,14 @@
{
"name": "global-draw-sheet",
"name": "global-draw",
"version": "2.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "global-draw-sheet",
"name": "global-draw",
"version": "2.0",
"dependencies": {
"dotenv": "^16.0.3",
"https": "^1.0.0",
"socket.io": "^4.4.1",
"typescript": "^5.0.2"
},
@ -132,11 +131,6 @@
"node": ">=10.0.0"
}
},
"node_modules/https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
@ -341,11 +335,6 @@
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
"integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw=="
},
"https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",

@ -2,13 +2,12 @@
"name": "global-draw",
"version": "2.0",
"private": true,
"scripts": {
"start": "node out/index.js",
"scripts": {
"start": "node out/index.js",
"tsc": "npx tsc"
},
},
"dependencies": {
"dotenv": "^16.0.3",
"https": "^1.0.0",
"socket.io": "^4.4.1",
"typescript": "^5.0.2"
},

@ -3,5 +3,7 @@ import {StartServer} from "./start";
StartServer({
useP2P: false,
gameClass: GlobalDraw
gameClass: GlobalDraw,
subPath: "/global-draw/",
port: 3101
});

@ -3,30 +3,26 @@ import {log} from "./logger.js";
import {Server} from 'socket.io';
import {Room} from "./room.js";
import * as https from "https";
import * as fs from "fs";
import * as http from "http";
export function StartServer(settings: any){
require("dotenv").config();
const httpsPort = parseInt(process.env.HTTPS_PORT);
let cert = fs.readFileSync(`${process.env.SSL_PATH}/cert.pem`);
let key = fs.readFileSync(`${process.env.SSL_PATH}/key.pem`);
let httpServer = http.createServer();
let httpsServer = https.createServer({key: key, cert: cert});
let sIO = new Server(httpsServer, {
let sIO = new Server(httpServer, {
cors: {
origin: ["https://play.benjamin-kraft.local", "https://play.benjamin-kraft.eu"]
}
},
path: settings.subPath
});
if (settings.useP2P){
const p2p = require('socket.io-p2p-server').Server;
sIO.use(p2p);
}
httpsServer.listen(httpsPort);
httpServer.listen(settings.port);
Room.GameClass = settings.gameClass;
@ -35,5 +31,5 @@ export function StartServer(settings: any){
// On new connection
sIO.on('connection', socket => connectionManager.newSocket(socket));
log('startup', null, null, 'Server is listening on port ' + httpsPort);
log('startup', null, null, 'Server is listening on port ' + settings.port);
}
Loading…
Cancel
Save