-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
100 lines (95 loc) · 2.98 KB
/
app.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
var express = require('express');
var app = express();
var http = require('http').Server(app);
var fs = require("fs");
// var firebase = require('firebase');
// firebase.initializeApp({
// databaseURL: 'https://*****.firebaseio.com',
// serviceAccount: 'myapp-13ad200fc320.json', //this is file that I downloaded from Firebase Console
// });
var io = require('socket.io')(http);
// var sqlite3 = require('sqlite3').verbose();
// var db = new sqlite3.Database('chat.db');
var insertData;
var dataMain = {}
// dataMain= JSON.parse(dataMain);
app.use(express.static(__dirname + '/public'));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.get('/',function(req,res){
res.sendfile('index.html');
});
app.get('/usageForAdmin',function(req,res){
res.json(dataMain);
});
io.on('connection',function(socket){
var user="";
var channel="";
var msgObj={};
socket.on('connectUser',function(data){
user=data.name;
channel=data.channel;
var msgArray=[];
socket.join(data.channel);
if(dataMain[data.channel] != undefined){
msgArray = dataMain[data.channel];
}else {
console.log(data.channel);
msgArray = undefined;
}
console.log(dataMain);
// db.serialize(function() {
// var createStr="CREATE TABLE if not exists "+channel+" (name TEXT,message TEXT)";
// db.run(createStr);
// });
// db.all("SELECT * FROM "+channel, function(err, row) {
// console.log(row);
//
// var initialData={
// 'name':data.name,
// 'msgArray':row,
// 'notification':"Welcome "+data.name+" !!"
// }
// socket.emit('notification',initialData);
// socket.broadcast.to(data.channel).emit('notification',data.name+' connected');
// });
var initialData={
'name':data.name,
'msgArray':msgArray,
'notification':"Welcome "+data.name+" !!",
"ArrayUpdate":true
}
socket.emit('notification',initialData);
socket.broadcast.to(data.channel).emit('notification',{'notification':data.name+' connected'});
});
socket.on('msg',function(data){
if(dataMain[channel] == undefined){
dataMain[channel] = [];
}
console.log(dataMain);
msgObj={
'name':data.name,
'message':data.message
}
dataMain[channel].push(msgObj);
console.log(dataMain);
// db.serialize(function() {
// var insertStr="INSERT INTO "+channel+" (name,message) VALUES ('"+msgObj.name+"','"+msgObj.message+"')";
// console.log(insertStr);
// db.run(insertStr);
// });
socket.broadcast.to(channel).emit('msg', msgObj);
msgObj={};
})
socket.on('disconnect',function(){
var userDetails={
'name':user,
'msgArray':undefined,
'notification':""+user+" has left !!",
"ArrayUpdate":false
}
socket.broadcast.to(channel).emit('notification',userDetails)
})
})
http.listen(process.env.PORT || 3000, function(){
console.log('listening on', http.address().port);
});