devsho
...@@ -24,7 +24,7 @@ var LocalStrategy = require('passport-local').Strategy ...@@ -24,7 +24,7 @@ var LocalStrategy = require('passport-local').Strategy
24 var session = require('express-session') 24 var session = require('express-session')
25 var flash = require('connect-flash') 25 var flash = require('connect-flash')
26 var path = require('path') 26 var path = require('path')
27 -const PORT = 3003 27 +const PORT = 3000
28 28
29 var jsdom = require('jsdom'); 29 var jsdom = require('jsdom');
30 const { JSDOM } = jsdom; 30 const { JSDOM } = jsdom;
...@@ -74,6 +74,7 @@ var session = session({ ...@@ -74,6 +74,7 @@ var session = session({
74 app.use(session); 74 app.use(session);
75 75
76 var sharedsession = require("express-socket.io-session"); 76 var sharedsession = require("express-socket.io-session");
77 +const { createSocket } = require('dgram')
77 io.use(sharedsession(session, { autoSave:true})); 78 io.use(sharedsession(session, { autoSave:true}));
78 79
79 app.use(passport.initialize()) 80 app.use(passport.initialize())
...@@ -113,16 +114,16 @@ io.sockets.on('connection', function(socket) { ...@@ -113,16 +114,16 @@ io.sockets.on('connection', function(socket) {
113 } 114 }
114 else{ 115 else{
115 console.log(logString+'익명 유저의 채팅 전송을 거부했습니다.('+ip+')') 116 console.log(logString+'익명 유저의 채팅 전송을 거부했습니다.('+ip+')')
116 - // 117 + //
117 } 118 }
118 }) 119 })
119 - 120 +
120 /* 접속 종료 */ 121 /* 접속 종료 */
121 socket.on('disconnect', function() { 122 socket.on('disconnect', function() {
122 if(socket.name != undefined){ 123 if(socket.name != undefined){
123 console.log(logString+socket.name + ' 님이 나가셨습니다.') 124 console.log(logString+socket.name + ' 님이 나가셨습니다.')
124 /* 나가는 사람을 제외한 나머지 유저에게 메시지 전송 */ 125 /* 나가는 사람을 제외한 나머지 유저에게 메시지 전송 */
125 - socket.broadcast.emit('update', {type: 'disconnect', name: 'SERVER', message: socket.name + '님이 나가셨습니다.'}); 126 + socket.broadcast.emit('update', {type: 'disconnect', name: 'SERVER', message: socket.name + '님이 나가셨습니다.'});
126 } 127 }
127 }) 128 })
128 }) 129 })
......
...@@ -10,41 +10,42 @@ socket.on('connect', function() { ...@@ -10,41 +10,42 @@ socket.on('connect', function() {
10 10
11 /* 서버로부터 데이터 받은 경우 */ 11 /* 서버로부터 데이터 받은 경우 */
12 socket.on('update', function(data) { 12 socket.on('update', function(data) {
13 - var chat = document.getElementById('chat') 13 + var chat = document.getElementById('chat')
14 14
15 - var message = document.createElement('div') 15 + var message = document.createElement('div')
16 - var node; 16 + var node;
17 - if(data.name != "SERVER"){ 17 + if(data.name != "SERVER"){
18 - node = document.createTextNode(`${data.name}: ${data.message}`) 18 + node = document.createTextNode(`${data.name}: ${data.message}`)
19 - } else{ 19 + }
20 - node = document.createTextNode(`${data.message}`) 20 + else{
21 - } 21 + node = document.createTextNode(`${data.message}`)
22 - var className = '' 22 + }
23 + var className = ''
23 24
24 - // 타입에 따라 적용할 클래스를 다르게 지정 25 + // 타입에 따라 적용할 클래스를 다르게 지정
25 - switch(data.type) { 26 + switch(data.type) {
26 - case 'message': 27 + case 'message':
27 - className = 'other' 28 + className = 'other'
28 - break 29 + break
29 30
30 - case 'connect': 31 + case 'connect':
31 - className = 'connect' 32 + className = 'connect'
32 - break 33 + break
33 34
34 - case 'disconnect': 35 + case 'disconnect':
35 - className = 'disconnect' 36 + className = 'disconnect'
36 - break 37 + break
37 - } 38 + }
38 39
39 - message.classList.add(className) 40 + message.classList.add(className)
40 - message.appendChild(node) 41 + message.appendChild(node)
41 - chat.appendChild(message) 42 + chat.appendChild(message)
42 43
43 - function a(chat = 'chat'){ 44 + function a(chat = 'chat'){
44 - var element = document.getElementById(chat); 45 + var element = document.getElementById(chat);
45 - element.scrollTop = element.scrollHeight - element.clientHeight; 46 + element.scrollTop = element.scrollHeight - element.clientHeight;
46 - } 47 + }
47 - a(); 48 + a();
48 }) 49 })
49 50
50 /* 메시지 전송 함수 */ 51 /* 메시지 전송 함수 */
......
...@@ -70,8 +70,9 @@ create table comment( ...@@ -70,8 +70,9 @@ create table comment(
70 >UPDATE board SET idx = @COUNT:=@COUNT+1; 70 >UPDATE board SET idx = @COUNT:=@COUNT+1;
71 71
72 --- 72 ---
73 -### 최종 수정: 2021-11-26 04:42<br> 73 +### 최종 수정: 2021-11-26 16:26<br>
74 ### 수정 내용: 74 ### 수정 내용:
75 +0. 채팅 중 서버 재시작시 기존 참여자들 리셋시키기 이슈
75 1. 채팅 구현 76 1. 채팅 구현
76 2. 시간 실시간 반영 77 2. 시간 실시간 반영
77 3. 프로필 사진 추가 78 3. 프로필 사진 추가
......
...@@ -147,6 +147,7 @@ router.post('/read/commentwrite', function(req,res,next){ ...@@ -147,6 +147,7 @@ router.post('/read/commentwrite', function(req,res,next){
147 board.query(sql, datas, function(err,row){ 147 board.query(sql, datas, function(err,row){
148 if (err) console.error("err : " + err); 148 if (err) console.error("err : " + err);
149 }) 149 })
150 + console.log(logString+req.user.ID+'('+nickname+') 유저가 '+idx+'번 게시물에 댓글을 작성했습니다.('+ip+')')
150 res.redirect('/board/read/'+idx); 151 res.redirect('/board/read/'+idx);
151 }) 152 })
152 153
......