zoom : socket.io - room

This commit is contained in:
haerong22
2021-10-16 18:43:29 +09:00
parent 05edfdd5ef
commit d9f190165e
3 changed files with 47 additions and 10 deletions

View File

@@ -2,10 +2,24 @@ const socket = io();
const welcome = document.getElementById("welcome");
const form = welcome.querySelector("form");
const room = document.getElementById("room");
room.hidden = true;
function backendDone(msg) {
console.log(`The backend says: `, msg);
let roomName;
function addMessage(messages) {
const ul = room.querySelector("ul");
const li = document.createElement("li");
li.innerText = messages;
ul.appendChild(li);
}
function showRoom() {
welcome.hidden = true;
room.hidden = false;
const h3 = room.querySelector("h3");
h3.innerText = `Room : ${roomName}`;
}
function handleRoomSubmit(event) {
event.preventDefault();
@@ -13,10 +27,19 @@ function handleRoomSubmit(event) {
socket.emit(
"enter_room",
{payload: input.value},
backendDone
input.value,
showRoom
);
roomName = input.value;
input.value = "";
}
form.addEventListener("submit", handleRoomSubmit);
form.addEventListener("submit", handleRoomSubmit);
socket.on("welcome", () => {
addMessage("Someone joined!");
})
socket.on("bye", () => {
addMessage("Someone left...");
})

View File

@@ -17,12 +17,19 @@ const httpServer = http.createServer(app);
const wsServer = SocketIo(httpServer);
wsServer.on("connection", socket => {
socket.on("enter_room", (roomName, done) => {
console.log(roomName);
setTimeout(() => {
done("hello from the backend")
}, 10000);
socket.onAny((event) => {
console.log(`Socket Event: ${event}`)
});
socket.on("enter_room", (roomName, done) => {
socket.join(roomName);
done();
socket.to(roomName).emit("welcome");
});
socket.on("disconnecting", () => {
socket.rooms.forEach((room) => {
socket.to(room).emit("bye");
});
})
});
httpServer.listen(3000, handleListen);

View File

@@ -15,6 +15,13 @@ html(lang="en")
form
input(placeholder="room name", required, type="text")
button Enter Room
div#room
h3
ul
form
input(placeholder="message", required, type="text")
button Send
script(src="/socket.io/socket.io.js")
script(src="/public/js/app.js")