123
рамме
var express = require('express');
var app = express();
var server = require('http').createServer(app);
const fs = require("fs");
var childProcess = require('child_process');
const io = require('socket.io')(server);
// Отслеживание порта
server.listen(3000 , function(request, respons) {
console.log("Успешное rkrya");
});
// Отслеживание url адреса и отображение нужной HTML страницы
app.get('/', function(request, respons) {
respons.sendFile(__dirname + '/register2.html');
});
// Функция, которая сработает при подключении к странице
// Считается как новый пользователь
io.sockets.on('connection', function(socket) {
console.log("Успешное соединение");
// Функция, которая срабатывает при отключении от сервера
socket.on('disconnect', function(data) {
childProcess.execSync('rm -rf 2.txt | rm -rf 3.txt | rm -rf pi.java | rm -rf pi.class');
console.log("Отключились");
});
// Функция получающая сообщение от какого-либо пользователя
socket.on('send mess', function(data) {
let comp = 0;
let prog = 0;
fs.writeFileSync("pi.java", data.name);
// запись программы в файл
console.log("1");
try {
childProcess.execSync('javac pi.java 2> 3.txt ');
// //компилирование программы
}
catch {
let uio = fs.readFileSync("3.txt", "utf8");
console.log("uio");
io.sockets.emit('add mess', {mess: uio});
comp=1;
}
if (comp==0)
{
console.log("2");
try {
childProcess.execSync('java -classpath . pi 1> 2.txt << MaGiC \n '+data.mess+' \nMaGiC ');
// Запуск программы и подстановка данных для неё
}
catch (e)
{
io.sockets.emit('add mess', {mess: "Некорректный ввод данных. Проверьте внимательно"});
prog=1;
}
if (prog==0)
{
console.log("3");
let filecontent = fs.readFileSync("2.txt", "utf8");
console.log("4");
io.sockets.emit('add mess', {mess: filecontent});
console.log("5");
childProcess.execSync('rm -rf 2.txt | rm -rf 3.txt | rm -rf pi.java | rm -rf pi.class');
}
}
});
});