From aa7ea36d51df232d3da4c0b4d4bc0d7a0ee5a84a Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 01:32:32 +0530 Subject: [PATCH 01/19] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7215838..6f843ea 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "devStart": "nodemon server.js" + "start": "npm run server.js" }, "keywords": [], "author": "", From 807d6cbd02d7d514fe1b61c67ca903a74044280e Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 01:42:42 +0530 Subject: [PATCH 02/19] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6f843ea..9ac4602 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start": "npm run server.js" + "start": "node server.js" }, "keywords": [], "author": "", From 18784dcc8c6067320c93d6e82a98a76e5d0f43bd Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 01:43:22 +0530 Subject: [PATCH 03/19] Update server.js --- server.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 0033e80..d1ac886 100644 --- a/server.js +++ b/server.js @@ -3,6 +3,7 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') +const port = process.env.PORT app.set('view engine', 'ejs') app.use(express.static('public')) @@ -26,4 +27,4 @@ io.on('connection', socket => { }) }) -server.listen(3000) \ No newline at end of file +server.listen(port) From 66c22e1312f016055d1126855b0d803f994f6214 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 01:45:27 +0530 Subject: [PATCH 04/19] Create ProcFile --- ProcFile | 1 + 1 file changed, 1 insertion(+) create mode 100644 ProcFile diff --git a/ProcFile b/ProcFile new file mode 100644 index 0000000..489b270 --- /dev/null +++ b/ProcFile @@ -0,0 +1 @@ +web: node server.js From cf19d855429bf73e1463073134086ac6b8cae740 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 01:54:07 +0530 Subject: [PATCH 05/19] Update script.js --- public/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index e9c41c5..61c4109 100644 --- a/public/script.js +++ b/public/script.js @@ -2,7 +2,7 @@ const socket = io('/') const videoGrid = document.getElementById('video-grid') const myPeer = new Peer(undefined, { host: '/', - port: '3001' + port: '9000' }) const myVideo = document.createElement('video') myVideo.muted = true @@ -53,4 +53,4 @@ function addVideoStream(video, stream) { video.play() }) videoGrid.append(video) -} \ No newline at end of file +} From 6ce2a21acbdf37cc5aab53f08a2be7857f3927a9 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 6 Aug 2020 02:08:06 +0530 Subject: [PATCH 06/19] Update script.js --- public/script.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/public/script.js b/public/script.js index 61c4109..7d66ffb 100644 --- a/public/script.js +++ b/public/script.js @@ -1,8 +1,10 @@ const socket = io('/') const videoGrid = document.getElementById('video-grid') -const myPeer = new Peer(undefined, { - host: '/', - port: '9000' +const myPeer = new Peer({ + host: 'https://zoom-clone123.herokuapp.com/', + key:'peerjs', + secure:true, + port: 443 }) const myVideo = document.createElement('video') myVideo.muted = true From dcc1aa9254a4e3c95d65c0b6722dcafe2171f449 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Wed, 2 Dec 2020 22:35:06 +0530 Subject: [PATCH 07/19] Update script.js --- public/script.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/public/script.js b/public/script.js index 7d66ffb..a4832ee 100644 --- a/public/script.js +++ b/public/script.js @@ -1,11 +1,6 @@ const socket = io('/') const videoGrid = document.getElementById('video-grid') -const myPeer = new Peer({ - host: 'https://zoom-clone123.herokuapp.com/', - key:'peerjs', - secure:true, - port: 443 -}) +const myPeer = new Peer() const myVideo = document.createElement('video') myVideo.muted = true const peers = {} From 80d6512e8d246e92b6e4dcf08550bac182f2f87b Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Wed, 2 Dec 2020 22:36:36 +0530 Subject: [PATCH 08/19] Update room.ejs --- views/room.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/room.ejs b/views/room.ejs index 269ae95..b86243b 100644 --- a/views/room.ejs +++ b/views/room.ejs @@ -7,7 +7,7 @@ - + Document @@ -28,4 +28,4 @@
- \ No newline at end of file + From a92cc8509a886c9930daa31b2b1489818e5ea6cc Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 3 Dec 2020 00:04:34 +0530 Subject: [PATCH 09/19] Create README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..95befe7 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Zoom-Clone-With-WebRTC +## This is a working zoom but as basic , no additional functionality is added besides normal video calling in rooms. +## You could use the default id provided in the adress bar or you can use custom id by entring after the website address [Zoom-Clone-Link](https://zoom-clone123.herokuapp.com/ "Zoom-Clone") From 03704dbabc4706a64697c415e3d40a01d2e445fa Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 3 Dec 2020 00:04:52 +0530 Subject: [PATCH 10/19] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 95befe7..902dbb4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # Zoom-Clone-With-WebRTC -## This is a working zoom but as basic , no additional functionality is added besides normal video calling in rooms. -## You could use the default id provided in the adress bar or you can use custom id by entring after the website address [Zoom-Clone-Link](https://zoom-clone123.herokuapp.com/ "Zoom-Clone") +### This is a working zoom but as basic , no additional functionality is added besides normal video calling in rooms. +### You could use the default id provided in the adress bar or you can use custom id by entring after the website address [Zoom-Clone-Link](https://zoom-clone123.herokuapp.com/ "Zoom-Clone") From b2c23c95c41bb0553550b9b1e3a3b4be4b16490a Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Thu, 3 Dec 2020 00:06:06 +0530 Subject: [PATCH 11/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 902dbb4..c0eb842 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # Zoom-Clone-With-WebRTC ### This is a working zoom but as basic , no additional functionality is added besides normal video calling in rooms. -### You could use the default id provided in the adress bar or you can use custom id by entring after the website address [Zoom-Clone-Link](https://zoom-clone123.herokuapp.com/ "Zoom-Clone") +### You could use the default id provided in the adress bar or you can use custom id by entring after the website address [Zoom-Clone-Link](https://zoom-clone123.herokuapp.com/custom-id-here "Zoom-Clone") From e8a00cc75fc15d7a9dafa1d11fe5274bc06b4e2b Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 13:36:59 +0530 Subject: [PATCH 12/19] Added echo cancellation --- public/script.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/public/script.js b/public/script.js index a4832ee..883ec06 100644 --- a/public/script.js +++ b/public/script.js @@ -1,12 +1,19 @@ const socket = io('/') const videoGrid = document.getElementById('video-grid') -const myPeer = new Peer() +const myPeer = new Peer(undefined, { + host: '/', + port: '3001' +}) +let userCounter = 0 const myVideo = document.createElement('video') myVideo.muted = true const peers = {} navigator.mediaDevices.getUserMedia({ video: true, - audio: true + audio: { + sampleSize:8, + echoCancellation: true + } }).then(stream => { addVideoStream(myVideo, stream) @@ -20,11 +27,15 @@ navigator.mediaDevices.getUserMedia({ socket.on('user-connected', userId => { connectToNewUser(userId, stream) + ++userCounter + console.log(userCounter) }) }) socket.on('user-disconnected', userId => { if (peers[userId]) peers[userId].close() + --userCounter + console.log(userCounter) }) myPeer.on('open', id => { @@ -50,4 +61,4 @@ function addVideoStream(video, stream) { video.play() }) videoGrid.append(video) -} +} \ No newline at end of file From 0b80ad5deba1ea997aa3ead83f1326788c8b19fa Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 13:46:27 +0530 Subject: [PATCH 13/19] Update script.js --- public/script.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/public/script.js b/public/script.js index 883ec06..be51b47 100644 --- a/public/script.js +++ b/public/script.js @@ -1,9 +1,6 @@ const socket = io('/') const videoGrid = document.getElementById('video-grid') -const myPeer = new Peer(undefined, { - host: '/', - port: '3001' -}) +const myPeer = new Peer() let userCounter = 0 const myVideo = document.createElement('video') myVideo.muted = true @@ -61,4 +58,4 @@ function addVideoStream(video, stream) { video.play() }) videoGrid.append(video) -} \ No newline at end of file +} From c0332042c31ab0a9d0af4c1cc75da779c43fc019 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:13:43 +0530 Subject: [PATCH 14/19] HTTPS by default added --- package-lock.json | 11 ++++++++--- package.json | 5 +++-- server.js | 7 +++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5f2dc4..194ec22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -660,6 +660,11 @@ "vary": "~1.1.2" } }, + "express-sslify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-sslify/-/express-sslify-1.2.0.tgz", + "integrity": "sha1-MOhLzu0VV+sYdnK74UMKCioQDZw=" + }, "filelist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", @@ -1749,9 +1754,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" }, "vary": { "version": "1.1.2", diff --git a/package.json b/package.json index 9ac4602..cd63d10 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start": "node server.js" + "devStart": "nodemon server.js" }, "keywords": [], "author": "", @@ -12,8 +12,9 @@ "dependencies": { "ejs": "^3.1.3", "express": "^4.17.1", + "express-sslify": "^1.2.0", "socket.io": "^2.3.0", - "uuid": "^8.1.0" + "uuid": "^8.3.0" }, "devDependencies": { "nodemon": "^2.0.4" diff --git a/server.js b/server.js index d1ac886..11a99bc 100644 --- a/server.js +++ b/server.js @@ -3,11 +3,10 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') -const port = process.env.PORT - +const ssl = require('express-sslify') app.set('view engine', 'ejs') app.use(express.static('public')) - +app.use(ssl.HTTPS()) app.get('/', (req, res) => { res.redirect(`/${uuidV4()}`) }) @@ -27,4 +26,4 @@ io.on('connection', socket => { }) }) -server.listen(port) +server.listen(3000) \ No newline at end of file From 3becfed566cc4df874c27a47a548d9ed11d032fa Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:15:51 +0530 Subject: [PATCH 15/19] Update server.js --- server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server.js b/server.js index 11a99bc..a098ad1 100644 --- a/server.js +++ b/server.js @@ -6,7 +6,7 @@ const { v4: uuidV4 } = require('uuid') const ssl = require('express-sslify') app.set('view engine', 'ejs') app.use(express.static('public')) -app.use(ssl.HTTPS()) +app.use(ssl.HTTPS({ trustProtoHeader: true })) app.get('/', (req, res) => { res.redirect(`/${uuidV4()}`) }) @@ -26,4 +26,4 @@ io.on('connection', socket => { }) }) -server.listen(3000) \ No newline at end of file +server.listen(3000) From 0901a42cb9ca99431ba9fc6a202a47b5335dbb03 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:21:12 +0530 Subject: [PATCH 16/19] heroku ssl added --- package-lock.json | 5 +++++ package.json | 1 + server.js | 6 +++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 194ec22..e4c1a7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -789,6 +789,11 @@ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, + "heroku-ssl-redirect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/heroku-ssl-redirect/-/heroku-ssl-redirect-0.1.1.tgz", + "integrity": "sha512-kL/DvLR2J53iB3TXasQlo5JwF/j2L2zkala6Ddk9o6JwIPeDvbTGT9Aty8WElxcF389ObICCeyf2m7RKpCg5Bg==" + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", diff --git a/package.json b/package.json index cd63d10..8a0741f 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "ejs": "^3.1.3", "express": "^4.17.1", "express-sslify": "^1.2.0", + "heroku-ssl-redirect": "^0.1.1", "socket.io": "^2.3.0", "uuid": "^8.3.0" }, diff --git a/server.js b/server.js index a098ad1..9059375 100644 --- a/server.js +++ b/server.js @@ -3,10 +3,10 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') -const ssl = require('express-sslify') +const ssl = require('heroku-ssl-redirect') app.set('view engine', 'ejs') app.use(express.static('public')) -app.use(ssl.HTTPS({ trustProtoHeader: true })) +app.use(ssl()) app.get('/', (req, res) => { res.redirect(`/${uuidV4()}`) }) @@ -26,4 +26,4 @@ io.on('connection', socket => { }) }) -server.listen(3000) +server.listen(3000) \ No newline at end of file From 0a9437edb2c07b4394269a93a6ed897ef6a2277c Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:27:00 +0530 Subject: [PATCH 17/19] Added heroku ssl (Final) --- heroku-ssl.js | 21 +++++++++++++++++++++ server.js | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 heroku-ssl.js diff --git a/heroku-ssl.js b/heroku-ssl.js new file mode 100644 index 0000000..3f442c0 --- /dev/null +++ b/heroku-ssl.js @@ -0,0 +1,21 @@ +/** + * Force load with https on production environment + * https://devcenter.heroku.com/articles/http-routing#heroku-headers + */ +module.exports = function(environments, status) { + environments = environments || ['production']; + status = status || 302; + return function(req, res, next) { + if (environments.indexOf(process.env.NODE_ENV) >= 0) { + if (req.headers['x-forwarded-proto'] !== 'https') { + res.redirect(status, 'https://' + req.hostname + req.originalUrl); + } + else { + next(); + } + } + else { + next(); + } + }; +}; \ No newline at end of file diff --git a/server.js b/server.js index 9059375..1c27718 100644 --- a/server.js +++ b/server.js @@ -3,7 +3,7 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') -const ssl = require('heroku-ssl-redirect') +const ssl = require('./heroku-ssl') app.set('view engine', 'ejs') app.use(express.static('public')) app.use(ssl()) From 6bbac968f31e551ecadab1bbea52932233c8fe44 Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:29:39 +0530 Subject: [PATCH 18/19] Update server.js --- server.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server.js b/server.js index 1c27718..74cdf7b 100644 --- a/server.js +++ b/server.js @@ -3,10 +3,8 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') -const ssl = require('./heroku-ssl') app.set('view engine', 'ejs') app.use(express.static('public')) -app.use(ssl()) app.get('/', (req, res) => { res.redirect(`/${uuidV4()}`) }) @@ -26,4 +24,4 @@ io.on('connection', socket => { }) }) -server.listen(3000) \ No newline at end of file +server.listen(3000) From a638956fc69adda60d0b08ca893e2715ee043a6f Mon Sep 17 00:00:00 2001 From: Kuldeep Dhaka Date: Tue, 8 Dec 2020 16:35:12 +0530 Subject: [PATCH 19/19] Added heroku ssl (Final) --- server.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 74cdf7b..4b5a518 100644 --- a/server.js +++ b/server.js @@ -3,8 +3,12 @@ const app = express() const server = require('http').Server(app) const io = require('socket.io')(server) const { v4: uuidV4 } = require('uuid') +const ssl = require('./heroku-ssl') +const port = process.env.PORT + app.set('view engine', 'ejs') app.use(express.static('public')) +app.use(ssl()) app.get('/', (req, res) => { res.redirect(`/${uuidV4()}`) }) @@ -24,4 +28,4 @@ io.on('connection', socket => { }) }) -server.listen(3000) +server.listen(port || 3000) \ No newline at end of file