constapp=require('express')();constserver=require('http').createServer(app);//http protocol server 객체 생성constio=require('socket.io')(server,{cors:{origin:"*",credentials:true}});// socket으로 http 이용 및 cors 해제를 위한 옵션 io.on('connection',function(socket){socket.on('message',({name,message})=>{io.emit('message',({name:`from server ${name}`,message}))})});server.listen(4000,function(){console.log('Socket IO server listening on port 4000');});// 4000 port로 서버 생성
설명
socket.on('message',({name,message})=>{});
클라이언트로 부터 받은 메시지
socket.on : 접속된 클라이언트에서 발송한 데이터를 구독합니다.
‘message’ : event name, 클라이언트가 메시지 송신 시 지정한 이벤트 명
({name, message}) => { : 이벤트 핸들러, 핸들러 함수의 인자로 클라이언트가 송신한 메시지 전달.
io.emit('message',({name:`from server ${name}`,message}))
클라이언트로 보내는 메시지
io.emit : 접속된 모든 클라이언트에게 메시지 전송.
socket.emit : 메시지를 전송한 클라이언트에게만 메시지 전송.
socket.broadcast.emit : 메시지를 전송한 클라이언트를 제외한 모든 클라이언트에게 메시지 전송.
io.to[id].emit : 특정 클라이언트에게만 메시지 전송.
‘message’ : 클라이언트가 받는 이벤트 명
({name: from server ${name}, message}) : client가 받을 메시지