-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
113 lines (98 loc) · 3.06 KB
/
index.js
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
109
110
111
112
113
const express = require("express");
const cloudinary = require("cloudinary").v2;
const app = express();
const ConnectDb = require("./_db");
const router = express.Router();
const cors = require("cors");
var bodyParser = require("body-parser");
const http = require("http");
const { Server } = require("socket.io");
const server = http.createServer(app);
const io = new Server(server, {
cors: {
origin: "*",
methods: ["GET", "POST"],
},
});
// io.on("connection", (socket) => {
// console.log("a user connected");
// socket.on("join_room",(data)=>{
// socket.join(data);
// })
// socket.on("chat message", (msg) => {
// console.log("message: " + msg);
// io.emit("chat message", msg);
// });
// socket.on("disconnect", () => {
// console.log("user disconnected");
// });
// });
let activeUsers = [];
io.on("connection", (socket) => {
// add new User
socket.on("new-user-add", (newUserId) => {
if (!activeUsers.some((user) => user.userId === newUserId)) {
activeUsers.push({ userId: newUserId, socketId: socket.id });
console.log("New User Connected", activeUsers);
}
// send all active users to new user
io.emit("get-users", activeUsers);
});
socket.on("disconnect", () => {
// remove user from active users
activeUsers = activeUsers.filter((user) => user.socketId !== socket.id);
console.log("User Disconnected", activeUsers);
// send all active users to all users
io.emit("get-users", activeUsers);
});
// send message to a specific user
socket.on("send-message", (data) => {
const { receiverId } = data;
const user = activeUsers.find((user) => user.userId === receiverId);
console.log("Sending from socket to :", receiverId);
console.log("Data: ", data);
if (user) {
io.to(user.socketId).emit("recieve-message", data);
}
});
});
const PORT = process.env.PORT || 5000;
cloudinary.config({
cloud_name: "dyyonlqge",
api_key: "516461442442267",
api_secret: "3vN7RTWhEOGYW-Po7LauxGOSN8g",
secure: true,
});
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", process.env.REACT_APP_LOCALHOST);
// You can also specify other CORS headers as needed
res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
next();
});
app.use(router);
app.use(
cors({
origin: process.env.REACT_APP_LOCALHOST,
methods: ["GET", "POST"],
credentials: true,
optionsSuccessStatus: 200,
})
);
app.get("/", (req, res) => {
res.json({ docker: "Welcome to my container" });
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// app.use(express.json());
ConnectDb();
app.use("/api/auth", require("./routes/auth"));
app.use("/api/addpost", require("./routes/addpost"));
app.use("/api/story", require("./routes/story"));
// app.use("/api/order",require("./routes/order"))
server.listen(PORT, () => {
console.log(`app is started in ${PORT}`);
});
// app.listen(PORT,()=>{
// console.log(`app is started`);
// })