• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 socket room 여러개 생성 질문있습니다!

socket room 여러개 생성 질문있습니다!

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #55046

    이창민
    참가자
    안녕하세욤
    밤새 고민하다가 머리가 멈춰서 질문드립니다 ㅠㅠ
    
    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>
    #55067

    codingapple
    키 마스터
    요청.params.id 쓰려면 프론트엔드에서도 채팅버튼클릭시 /:id 부분을 잘 채워서 보내줘야합니다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠