node 채팅 방 만들기 > 질문답변

본문 바로가기

사이트 내 전체검색

뒤로가기 질문답변

node 채팅 방 만들기

페이지 정보

작성자 미친새 작성일 20-02-21 17:46 조회 24,795 댓글 0

본문

var io = require('socket.io').listen(8001);
io.sockets.on('connection', function (socket){
    var room_id;
    socket.on('joinRoom',function(data){
        room_id = data;
        socket.join(room_id); //룸입장
        console.log('JOIN ROOM LIST', io.sockets.adapter.rooms);
    });
    socket.on('leaveRoom',function(){
        socket.leave(room_id);//룸퇴장
        console.log('OUT ROOM LIST', io.sockets.adapter.rooms);
    });
    socket.on('sendMsg',function(data){
        io.sockets.in(room_id).emit('msgAlert',data);//자신포함 전체 룸안의 유저
        //socket.broadcast.to(room_id).emit('msgAlert',data); //자신 제외 룸안의 유저
        //socket.in(room_id).emit('msgAlert',data);  //broadcast 동일하게 가능 자신 제외 룸안의 유저
        //io.of('namespace').in(room_id).emit('msgAlert', data) //of 지정된 name space의 유저의 룸
    });
    socket.on('disconnect', function(){
        console.log('NOT USER DISCONNECT : ', socket.id);
        console.log('ROOM LIST', io.sockets.adapter.rooms);
    });
    /*
    * 룸리스트 콘솔로그
    * socket.io 1.x 에서 io.sockets.manager.rooms => io.sockets.adapter.rooms
    * ROOM LIST { qNADgg3CCxESDLm5AAAA: [ qNADgg3CCxESDLm5AAAA: true ],
          test_room:
          [ qNADgg3CCxESDLm5AAAA: true,
            '0rCX3v4pufWvQ6uwAAAB': true,
            'iH0wJHGh-qKPRd2RAAAC': true ],
          '0rCX3v4pufWvQ6uwAAAB': [ '0rCX3v4pufWvQ6uwAAAB': true ],
          'iH0wJHGh-qKPRd2RAAAC': [ 'iH0wJHGh-qKPRd2RAAAC': true ] }
    */
});


출처: http://opens.kr/63 [opens.kr]

출처: http://opens.kr/63 [opens.kr]

출처: http://opens.kr/63 [opens.kr]

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기