-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
108 lines (97 loc) · 3.6 KB
/
app.js
File metadata and controls
108 lines (97 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
const express = require("express");
const app = express();
const path = require("path");
const cloudinary = require("cloudinary").v2;
const http = require("http").Server(app);
const io = require("socket.io")(http);
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const { EventEmitter } = require("events");
const routes = require("./routes/authroutes");
const Room = require("./controllers/Room");
const Game = require("./controllers/Game");
const DisconnectHelper = require("./controllers/DisconnectHelper");
const Canvas = require("./controllers/Canvas");
global.round = new EventEmitter();
//database connection
const connecttomongo = () => {
mongoose.connect("mongodb://127.0.0.1:27017/codesangam", {
useNewUrlParser: true,
});
};
connecttomongo();
app.use(express.urlencoded({ extended: true }));
app.use(express.static("public"));
app.set("view engine", "ejs");
//routes
app.use("/", routes);
cloudinary.config({
cloud_name: "dtj2sixay",
api_key: "976534766916839",
api_secret: "EriTFMp-vpP2J6WXl7c9qS_HLv0",
secure: true,
});
// sockets connection
io.on("connection", (socket) =>
{
console.log(`connected user ${socket.id}`);
socket.on("create-private-room", async (player) =>
new Room(io, socket).createPrivateRoom(player)
);
socket.on("joinRoom", async (data) => new Room(io, socket).joinRoom(data));
socket.on("drawing", async (data) => new Canvas(io, socket).broadcastDrawing(data));
socket.on('drawRect',(data)=>new Canvas(io,socket).drawRectangle(data));
socket.on('stopRect',(data)=>new Canvas(io,socket).stopRectangle(data));
socket.on('drawCircle',(data)=>new Canvas(io,socket).drawCircle(data));
socket.on('stopCircle',(data)=>new Canvas(io,socket).stopCircle(data));
socket.on('drawLine',(data)=>new Canvas(io,socket).drawLine(data));
socket.on('stopLine',(data)=>new Canvas(io,socket).stopLine(data));
socket.on('bucketFill',(data)=> new Canvas(io,socket).bucketFill(data));
socket.on('eraser',(data)=>new Canvas(io,socket).eraser(data));
socket.on('stopEraser',()=>new Canvas(io,socket).stopEraser());
socket.on("stopdrawing", (data) => new Canvas(io, socket).stopDrawing());
socket.on("clearCanvas", () => new Canvas(io, socket).clearCanvas());
socket.on("joinPublic", async (player) =>
new Room(io, socket).joinPublic(player)
);
socket.on("undodo", () => new Canvas(io, socket).undoDo());
socket.on("getPlayers", async () => {
await new Game(io, socket).getPlayers();
});
socket.on("redoDo", () => new Canvas(io, socket).redoDo());
socket.on("message", (data) => new Game(io, socket).message(data));
socket.on("startGame", async () => {
await new Game(io, socket).startGame();
});
socket.on("chatBlock", async (id) => {
await new Game(io, socket).pushSocket(id);
});
socket.on("disconnect", async () => {
await new DisconnectHelper(io, socket).onDisconnect();
console.log(`disconnected ${socket.id}`);
});
socket.on("settingsUpdate", (data) =>{
console.log(data);
new Room(io, socket).updateSettings(data);
}
);
socket.on("KickPlayer", async (data) => {
await new Game(io, socket).kickPlayers(data);
});
socket.on("shareSocials", async () => {
const filePath = path.join(__dirname + "/canvas_images/filename.png");
console.log(filePath);
cloudinary.uploader
.upload(filePath)
.then((result) => {
console.log("hi");
console.log(result.url);
socket.emit("shareSocials", result.url);
})
.catch((error) => console.log(error));
});
});
//starting server
http.listen(3001, () => {
console.log(`Server listening on port 3001`);
});