@@ -6,6 +6,7 @@ var express = require('express')
66
77app . engine ( 'html' , require ( 'ejs' ) . renderFile ) ;
88app . set ( 'views' , __dirname + '/views' ) ;
9+ app . use ( express . static ( __dirname + '/contents' ) ) ;
910
1011app . get ( '/' , function ( req , res ) {
1112 res . render ( 'index.html' , {
@@ -16,37 +17,43 @@ app.get('/', function(req, res) {
1617// socket
1718io . on ( 'connection' , function ( socket ) {
1819 console . log ( 'a user connected' ) ;
20+ var roomId = null ;
1921
20- socket . on ( 'message' , function ( msg ) {
21- console . log ( 'message: ' + msg ) ;
22-
23- socket . broadcast . emit ( 'message' , msg ) ;
24- //io.emit('message', msg);
25- } ) ;
26-
27- socket . on ( 'disconnect' , function ( ) {
28- console . log ( 'a user disconnected' ) ;
22+ // 룸접속
23+ socket . on ( 'joinRoom' , function ( room , nickName ) {
24+ roomId = room ;
25+ socket . join ( roomId ) ;
26+ io . sockets . in ( roomId ) . emit ( 'joinRoom' , roomId , nickName ) ;
27+ console . log ( 'ROOM LIST' , io . sockets . adapter . rooms ) ;
2928 } ) ;
3029
31- // 참여
32- socket . on ( 'join' , function ( nickName ) {
33- socket . broadcast . emit ( 'join' , nickName ) ;
30+ // 룸퇴장
31+ socket . on ( 'leaveRoom' , function ( room , nickName ) {
32+ socket . leave ( roomId ) ;
33+ socket . broadcast . to ( roomId ) . emit ( 'leaveRoom' , nickName ) ;
3434 } ) ;
3535
36- // 나가기
37- socket . on ( 'leave' , function ( nickName ) {
38- socket . broadcast . emit ( 'leave' , nickName ) ;
36+ // 메시징
37+ socket . on ( 'message' , function ( msg ) {
38+ //console.log('message: ' + msg);
39+
40+ socket . broadcast . to ( roomId ) . emit ( 'message' , msg ) ; // 자신 제외 룸안의 유저
41+ //socket.broadcast.emit('message', msg); // 자신 제외 메시지 전송
42+ //io.emit('message', msg); // 자신 포함 전체 룸 메시지 전송
43+ //io.sockets.in(roomId).emit('message', msg); // 자신 포함 룸안의 유저
3944 } ) ;
4045
4146 // 타이핑
4247 socket . on ( 'typing' , function ( nickName ) {
43- socket . broadcast . emit ( 'typing' , nickName ) ;
48+ socket . broadcast . to ( roomId ) . emit ( 'typing' , nickName ) ;
49+ } ) ;
50+
51+ // 소켓 연결해제
52+ socket . on ( 'disconnect' , function ( ) {
53+ console . log ( 'a user disconnected' ) ;
4454 } ) ;
4555} ) ;
4656
47- // static 은 view 선언 다음에 사용
48- app . use ( express . static ( __dirname + '/contents' ) ) ;
49-
5057// server listen start
5158http . listen ( config . webserver . port , function ( ) {
5259 console . log ( 'Simple Chatting server running at ' + config . webserver . host + ':' + config . webserver . port ) ;
0 commit comments