-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
108 lines (85 loc) · 2.63 KB
/
server.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
var express=require("express");
var app=express();
const {JWT_SECRET} = require('../Social-Networking/config/keys')
const cors = require('cors');
app.use(cors());
app.use(express.json())
app.use(express.urlencoded({extended:true}))
const {MONGOURI}=require("./config/keys")
var mongodb=require("mongoose");
mongodb.connect(MONGOURI,{
useNewUrlParser:true,
useUnifiedTopology:true
})
mongodb.connection.on('connected',()=>{
console.log("Database Connected")
})
mongodb.connection.on('error',(err)=>{
console.log("Error Connecting database",err)
})
require('./models/user')
require('./models/post')
require('./models/Chatroom')
require('./models/Message')
app.use(express.json())
app.use(require("./routes/auth"))
app.use(require("./routes/post"))
app.use(require("./routes/user"))
app.use(require("./routes/chatroom"))
const mongoose=require('mongoose')
const Message=mongoose.model("Message")
const User=mongoose.model("user")
const customMiddleware=(req,res,next)=>{
next()
}
app.use(customMiddleware)
var bcrypt=require("bcrypt");
var filesystem=require("fs");
var jwt=require("jsonwebtoken");
const { Socket } = require("dgram");
const { Mongoose } = require("mongoose");
var accessTokenSecret="myAccessTokenSecret1234567890";
app.use(express.static(__dirname + '/public'));
app.set("view engine","ejs");
const PORT = process.env.PORT || 3001;
const server=app.listen(PORT,function(){
console.log("Server Started at http://localhost:3001");
});
const io=require("socket.io")(server,{
cors:{
origin:'*'
}
});
io.on('connection', function(socket){
const id=socket.handshake.query.token;
ID=id.slice(1,-1)
socket.userId=ID
console.log('Connected '+socket.userId);
socket.on('disconnect', function(){
console.log('Disconnected '+socket.userId);
});
socket.on("joinRoom",({chatroomId})=>{
socket.join(chatroomId)
console.log("User with ID "+chatroomId+" joined chatroom")
})
socket.on("leaveRoom",({chatroomId})=>{
socket.leave(chatroomId)
console.log("User with ID "+chatroomId+" left chatroom")
})
socket.on("chatroomMessage",async({chatroomId,message})=>{
if(message.trim().length>0){
const user=await User.findOne({_id:socket.userId})
const newMessage=new Message({
chatroom: chatroomId,
user:socket.userId,
message
})
io.to(chatroomId).emit("newMessage",{
message,
name:user.name,
userId:socket.userId
})
await newMessage.save()
}
})
});