안녕하세욤
밤새 고민하다가 머리가 멈춰서 질문드립니다 ㅠㅠ
socket.io 그룹채팅기능에서
room 이름을 게시물번호로 정해서 확장성있게 하고싶어서
io.on('connection~~~~~에서부터 쭉 복사해서
app.get('/chat/:id', 로그인했니, function(요청, 응답){
db.collection('post').findOne({ _id : parseInt(요청.params.id)}, function(에러, 결과){
console.log(결과)
응답.render('chat.ejs', { data : 결과, 사용자 : 요청.user })
})
여기에 붙여넣기를하고 'room1'을 요청.params.id로 수정해봤지만 실패하고 도저히 방법이 안떠올라 질문드립니다 ㅠㅠ
})
어떻게 코드를 짜야 게시물별로 독립적인 그룹채팅이 가능한가요 ㅠㅠ
--------server.js
//채팅페이지
app.get('/chat/:id', 로그인했니, function(요청, 응답){
db.collection('post').findOne({ _id : parseInt(요청.params.id)}, function(에러, 결과){
console.log(결과)
응답.render('chat.ejs', { data : 결과, 사용자 : 요청.user })
})
})
io.on('connection', function(socket){
console.log('유저 접속됨')
socket.on('room1-send', function(data){
io.to('room1').emit('broadcast', data)
})
socket.on('room1', function(사용자){
io.to('room1').emit('broadcast', 사용자)
})
socket.on('joinroom', function(data){
socket.join('room1')
})
socket.on('user-send', function(data){
io.to(socket.id).emit('broadcast', data)
})
socket.on('disconnect', function(data){
socket.leave('room1')
})
})
----------ejs
<script>
var socket = io();
$('#room1-send').click(function(){
socket.emit('room1-send', '<%= 사용자.이름 %> <%= 사용자.유형 %> : ' + $('#input1').val());
document.getElementById('input1').value = null;
})
$('#room1').click(function(사용자){
socket.emit('joinroom', '입장시켜줘')
socket.emit('room1', '<p> <%= 사용자.이름 %> <%= 사용자.유형 %>님이 입장하셨습니다. </p>')
})
socket.on('broadcast', function(data){
$('#content').append('<div>' + data + '</div>')
})
</script>