66 */
77$ ( function ( ) {
88 var socket = io ( ) ;
9- var nickName = /* prompt('닉네임을 입력해 주세요') || */ 'Guest-' + new Date ( ) . getTime ( ) ;
9+ var nickName = /*prompt('닉네임을 입력해 주세요') ||*/ 'Guest-' + getRandomNum ( 1000 ) ;
1010 var roomId = '' ;
1111 var $body = $ ( 'body' ) ;
1212 var $roomName = $ ( '#room-name' ) ;
@@ -20,13 +20,13 @@ $(function() {
2020 }
2121
2222 function addUserMessage ( nickName , msg , isMe ) {
23- $ ( '#chat-content' ) . append ( [
24- "<li class='" + ( isMe ? 'me' : '' ) + "'>" ,
25- "<strong class='name'>" + ( isMe ? 'Me' : nickName ) + "</strong>" ,
26- "<p class='message'>" + msg +
27- "<span class='date'>" + getTime ( ) + "</span>" ,
28- "</p>" ,
29- "</li>"
23+ $ ( '#chat-content' ) . append ( [
24+ "<li class='" + ( isMe ? 'me' : '' ) + "'>" ,
25+ "<strong class='name'>" + ( isMe ? 'Me' : nickName ) + "</strong>" ,
26+ "<p class='message'>" + msg +
27+ "<span class='date'>" + getTime ( ) + "</span>" ,
28+ "</p>" ,
29+ "</li>"
3030 ] . join ( '\n' ) ) ;
3131 }
3232
@@ -38,49 +38,77 @@ $(function() {
3838 ] . join ( '\n' ) ) ;
3939 }
4040
41- function getRandomNum ( ) {
42- return Math . floor ( Math . random ( ) * 10000 ) + 1 ; // 1~10000
41+ function getRandomNum ( max ) {
42+ return Math . floor ( Math . random ( ) * max ) + 1 ; // 1 ~ max
4343 }
4444
4545 // 해시 체크
4646 if ( location . hash . length >= 2 ) {
47- $roomName . val ( location . hash . split ( '#' ) [ 1 ] ) ;
47+ $roomName . val ( location . hash . split ( '#' ) [ 1 ] ) ;
4848 }
4949
5050 // 룸생성, 참여 이벤트
5151 $ ( '#create-room' ) . click ( function ( ) {
52- socket . emit ( 'joinRoom' , getRandomNum ( ) , nickName ) ;
52+ socket . emit ( 'joinRoom' , getRandomNum ( 10000 ) , nickName ) ;
5353 } ) ;
5454
5555 $ ( '#join-room' ) . click ( function ( ) {
5656 socket . emit ( 'joinRoom' , $roomName . val ( ) , nickName ) ;
5757 } ) ;
5858
59- socket . on ( 'joinRoom' , function ( roomId , nickName ) {
60- roomId = roomId ;
59+ socket . on ( 'joinRoom' , function ( roomNum , nickName , userList ) {
60+ // console.log('userList', userList);
61+ roomId = roomNum ;
6162 location . hash = roomId ;
63+
6264 $body . addClass ( 'is-room' ) ;
6365 addSystemMessage ( "<strong>" + nickName + "</strong> 님이 참여하였습니다." ) ;
66+ setUserList ( userList ) ;
6467 } ) ;
6568
69+ function setUserList ( userList ) {
70+ var users = [ ] ;
71+ $ . each ( userList , function ( i , val ) {
72+ users . push ( "<li>" + val + "</li>" ) ;
73+ } ) ;
74+
75+ $ ( '#user-list' ) . html ( users . join ( '\n' ) ) ;
76+ }
77+
6678 // 로비로 이동
6779 $ ( '#leave-room' ) . click ( function ( ) {
80+ alert ( roomId ) ;
81+
6882 socket . emit ( 'leaveRoom' , roomId , nickName ) ;
6983 location . hash = '' ;
7084 location . reload ( ) ;
7185 } ) ;
7286
73- socket . on ( 'leaveRoom' , function ( nickName ) {
87+ socket . on ( 'leaveRoom' , function ( nickName , userList ) {
7488 addSystemMessage ( "<strong>" + nickName + "</strong> 님이 나갔습니다." ) ;
89+ setUserList ( userList ) ;
7590 } ) ;
7691
7792 // 메시지 이벤트
7893 $ ( 'form' ) . submit ( function ( ) {
7994 var msg = $msgInput . val ( ) ;
80- socket . emit ( 'message' , {
81- nickName : nickName ,
82- body : msg
83- } ) ;
95+
96+ if ( msg . match ( '/' ) ) {
97+ var receiverNickName = msg . split ( " " ) [ 0 ] . replace ( '/' , '' ) ;
98+ msg = msg . replace ( '/' + receiverNickName + ' ' , '' ) ;
99+
100+ socket . emit ( 'message' , {
101+ nickName : nickName ,
102+ body : msg ,
103+ to : receiverNickName
104+ } ) ;
105+ } else {
106+ socket . emit ( 'message' , {
107+ nickName : nickName ,
108+ body : msg ,
109+ to : 'all'
110+ } ) ;
111+ }
84112 $msgInput . val ( '' ) ;
85113 addUserMessage ( nickName , msg , true ) ;
86114
@@ -113,4 +141,9 @@ $(function() {
113141 }, 3000);
114142 */
115143 } ) ;
144+
145+ // 귓속말 해당 유저 추가
146+ $ ( '#user-list' ) . on ( 'click' , 'li' , function ( ) {
147+ $ ( '#message' ) . val ( '/' + $ ( this ) . text ( ) + " " ) ;
148+ } ) ;
116149} ) ;
0 commit comments