Socket.emit을 이용하여 여러개의 input을 전송 가능하다.
또한 마지막 인자로는 function을 보낼 수 있다.
function
Socket.emit의 마지막 인자여야 한다.
예시
FrontEnd (app.js)
function backendDone(){
console.log("backend Done");
}
function handleRoomSubmit(event){
event.preventDefault();
const input = form.querySelector("input");
socket.emit("enter_room", input.value, backendDone); // end socket.emit
input.value =""
}
socket.emit의 마지막 인자로 backendDone 함수를 넣어준다.
BackEnd(server.js)
wsServer.on("connection", socket => {
socket.on("enter_room", (roomName, done) =>{
console.log(roomName);
setTimeout(() => {
done();
},10000);
});
}); //end wsServer.on
그리고 서버에서는 (roomName, done) 을 이용하여 socket emit을 통해 전송한 값을 받는다.
timeout으로 인해 10초 뒤에 done을 실행하면, 코드가 다시 frontend에 가서 실행이 된다.
왜냐하면 backend에서 프론트에서 넘어온 코드를 실행하는 경우 보안 문제가 생길 수 있기 때문이다.
프론트에서 실행이 되기 때문에 웹 페이지의 콘솔에서 결과를 확인할 수 있다.

또한 매개변수를 사용하는것도 가능하다.
'NodeJS' 카테고리의 다른 글
| sequelize CASE WHEN 으로 정렬하기 (order CASE WHEN) (0) | 2023.01.03 |
|---|---|
| passport local CORS (프론트, 백 분리 시 sid 쿠키 저장 안되는 현상 해결) (2) | 2022.10.14 |
| FormData를 이용하여 데이터 전송이 안되는 현상 (0) | 2022.08.09 |
| nodemon을 이용한 Node js 서버 세팅 (0) | 2022.01.28 |
| passport -local을 이용한 회원가입 (2) | 2022.01.16 |