Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I_Helmet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
21_22-J 62
I_Helmet
Commits
c80391ca
Commit
c80391ca
authored
Jun 28, 2022
by
Balasuriya D.A.M.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
socket.io server and client setup/join a Chat
parent
f200c973
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
181 additions
and
2 deletions
+181
-2
IT18021080/Telemedicine-Chat-App/backend/server.js
IT18021080/Telemedicine-Chat-App/backend/server.js
+27
-1
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
+135
-0
IT18021080/Telemedicine-Chat-App/frontend/package.json
IT18021080/Telemedicine-Chat-App/frontend/package.json
+1
-0
IT18021080/Telemedicine-Chat-App/frontend/src/components/SingleChat.js
...lemedicine-Chat-App/frontend/src/components/SingleChat.js
+18
-1
No files found.
IT18021080/Telemedicine-Chat-App/backend/server.js
View file @
c80391ca
...
@@ -34,5 +34,31 @@ app.use(errorHandler);
...
@@ -34,5 +34,31 @@ app.use(errorHandler);
const
PORT
=
process
.
env
.
PORT
||
5000
;
const
PORT
=
process
.
env
.
PORT
||
5000
;
app
.
listen
(
5000
,
console
.
log
(
`Server Started on PORT
${
PORT
}
`
.
yellow
.
bold
));
const
server
=
app
.
listen
(
5000
,
console
.
log
(
`Server Started on PORT
${
PORT
}
`
.
yellow
.
bold
));
const
io
=
require
(
"
socket.io
"
)(
server
,
{
pingTimeout
:
6000
,
cors
:
{
origin
:
"
http://localhost:3000
"
,
},
});
io
.
on
(
"
connection
"
,
(
socket
)
=>
{
console
.
log
(
"
connected to socket.io
"
);
socket
.
on
(
"
setup
"
,
(
userData
)
=>
{
socket
.
join
(
userData
.
_id
);
//console.log(userData._id); use for get user id test
socket
.
emit
(
"
connected
"
);
});
socket
.
on
(
"
join chat
"
,
(
room
)
=>
{
socket
.
join
(
room
);
console
.
log
(
"
User Joined Room:
"
+
room
);
});
});
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
View file @
c80391ca
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
"react-dom": "^18.1.0",
"react-dom": "^18.1.0",
"react-router-dom": "^5.3.1",
"react-router-dom": "^5.3.1",
"react-scripts": "5.0.1",
"react-scripts": "5.0.1",
"socket.io-client": "^4.5.1",
"web-vitals": "^2.1.4"
"web-vitals": "^2.1.4"
}
}
},
},
...
@@ -4036,6 +4037,11 @@
...
@@ -4036,6 +4037,11 @@
"@sinonjs/commons": "^1.7.0"
"@sinonjs/commons": "^1.7.0"
}
}
},
},
"node_modules/@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"node_modules/@surma/rollup-plugin-off-main-thread": {
"node_modules/@surma/rollup-plugin-off-main-thread": {
"version": "2.2.3",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
...
@@ -7440,6 +7446,46 @@
...
@@ -7440,6 +7446,46 @@
"node": ">= 0.8"
"node": ">= 0.8"
}
}
},
},
"node_modules/engine.io-client": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
"integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.2.3",
"xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-client/node_modules/ws": {
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
"integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/engine.io-parser": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
"integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/enhanced-resolve": {
"node_modules/enhanced-resolve": {
"version": "5.9.3",
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
...
@@ -15685,6 +15731,32 @@
...
@@ -15685,6 +15731,32 @@
"node": ">=8"
"node": ">=8"
}
}
},
},
"node_modules/socket.io-client": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
"integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
"engine.io-client": "~6.2.1",
"socket.io-parser": "~4.2.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-parser": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
"integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/sockjs": {
"node_modules/sockjs": {
"version": "0.3.24",
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
...
@@ -17684,6 +17756,14 @@
...
@@ -17684,6 +17756,14 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
},
"node_modules/xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/xtend": {
"node_modules/xtend": {
"version": "4.0.2",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
...
@@ -20536,6 +20616,11 @@
...
@@ -20536,6 +20616,11 @@
"@sinonjs/commons": "^1.7.0"
"@sinonjs/commons": "^1.7.0"
}
}
},
},
"@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"@surma/rollup-plugin-off-main-thread": {
"@surma/rollup-plugin-off-main-thread": {
"version": "2.2.3",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
...
@@ -23065,6 +23150,31 @@
...
@@ -23065,6 +23150,31 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
},
"engine.io-client": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz",
"integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.2.3",
"xmlhttprequest-ssl": "~2.0.0"
},
"dependencies": {
"ws": {
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
"integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
"requires": {}
}
}
},
"engine.io-parser": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
"integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg=="
},
"enhanced-resolve": {
"enhanced-resolve": {
"version": "5.9.3",
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
...
@@ -28914,6 +29024,26 @@
...
@@ -28914,6 +29024,26 @@
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
},
},
"socket.io-client": {
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz",
"integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
"engine.io-client": "~6.2.1",
"socket.io-parser": "~4.2.0"
}
},
"socket.io-parser": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz",
"integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
}
},
"sockjs": {
"sockjs": {
"version": "0.3.24",
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
...
@@ -30445,6 +30575,11 @@
...
@@ -30445,6 +30575,11 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
},
"xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
},
"xtend": {
"xtend": {
"version": "4.0.2",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
IT18021080/Telemedicine-Chat-App/frontend/package.json
View file @
c80391ca
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
"react-dom"
:
"^18.1.0"
,
"react-dom"
:
"^18.1.0"
,
"react-router-dom"
:
"^5.3.1"
,
"react-router-dom"
:
"^5.3.1"
,
"react-scripts"
:
"5.0.1"
,
"react-scripts"
:
"5.0.1"
,
"socket.io-client"
:
"^4.5.1"
,
"web-vitals"
:
"^2.1.4"
"web-vitals"
:
"^2.1.4"
},
},
"scripts"
:
{
"scripts"
:
{
...
...
IT18021080/Telemedicine-Chat-App/frontend/src/components/SingleChat.js
View file @
c80391ca
...
@@ -9,12 +9,18 @@ import axios from "axios";
...
@@ -9,12 +9,18 @@ import axios from "axios";
import
"
./styles.css
"
;
import
"
./styles.css
"
;
import
ScrollableChat
from
"
./ScrollableChat
"
;
import
ScrollableChat
from
"
./ScrollableChat
"
;
import
io
from
"
socket.io-client
"
;
const
ENDPOINT
=
"
http://localhost:5000
"
;
var
socket
,
selectedChatCompare
;
const
SingleChat
=
({
fetchAgain
,
setFetchAgain
})
=>
{
const
SingleChat
=
({
fetchAgain
,
setFetchAgain
})
=>
{
const
[
messages
,
setMessages
]
=
useState
([]);
const
[
messages
,
setMessages
]
=
useState
([]);
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
newMessage
,
setNewMessage
]
=
useState
();
const
[
newMessage
,
setNewMessage
]
=
useState
();
const
[
socketConnected
,
setSocketConnected
]
=
useState
(
false
);
const
toast
=
useToast
();
const
toast
=
useToast
();
const
{
user
,
selectedChat
,
setSelectedChat
}
=
ChatState
();
const
{
user
,
selectedChat
,
setSelectedChat
}
=
ChatState
();
...
@@ -36,10 +42,13 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
...
@@ -36,10 +42,13 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
config
config
);
);
console
.
log
(
messages
);
setMessages
(
data
);
setMessages
(
data
);
setLoading
(
false
);
setLoading
(
false
);
socket
.
emit
(
"
join chat
"
,
selectedChat
.
_id
);
}
catch
(
error
)
{
}
catch
(
error
)
{
toast
({
toast
({
title
:
"
Error Occured!
"
,
title
:
"
Error Occured!
"
,
...
@@ -52,6 +61,8 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
...
@@ -52,6 +61,8 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
}
}
};
};
console
.
log
(
messages
);
useEffect
(()
=>
{
useEffect
(()
=>
{
fetchMessages
();
fetchMessages
();
},
[
selectedChat
]);
},
[
selectedChat
]);
...
@@ -94,6 +105,12 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
...
@@ -94,6 +105,12 @@ const SingleChat = ({ fetchAgain, setFetchAgain }) => {
}
}
};
};
useEffect
(()
=>
{
socket
=
io
(
ENDPOINT
);
socket
.
emit
(
"
setup
"
,
user
);
socket
.
on
(
"
connection
"
,
()
=>
setSocketConnected
(
true
));
},
[]);
const
typingHandler
=
(
e
)
=>
{
const
typingHandler
=
(
e
)
=>
{
setNewMessage
(
e
.
target
.
value
);
setNewMessage
(
e
.
target
.
value
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment