๐ก ์์ผ ์ฑํ ์์ ๋ฉ์์ง๋ง๋ค ์ฝ์ง ์์ ์ฌ๋ ์ ๋ณด์ฌ์ฃผ๊ธฐ ๋ฐฉ๋ฒ
์ด๋ฒ ํ๋ก์ ํธ์์ ๊ตฌํํ ๋ฐฉ๋ฒ์
๋๋ค.
DB์ ์ฐ๋ํ ์์ผ์ผ๋ก ๊ตฌํํ ์ฑํ
๋ฐฉ์์ ๋ฉ์์ง๋ง๋ค ์ฝ์ง์์ ์ฌ๋ ์๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์
๋๋ค.
โ๏ธ ํ ํด๋ผ์ด์ธํธ๊ฐ readMember() ํธ์ถํ๋ฉด์๋ถํฐ ์์
readMember() ํธ์ถ ์์
- ๋ฐฉ์ ์ ์ฅํ์ ๋ (์์ผ ์ฐ๊ฒฐ ๋์ ๋)
- ์์ผ ๋ฉ์ธ์ง๋ฅผ ์ฝ์์ ๋
readMember()
- ํด๋ผ์ด์ธํธ ๋ณธ์ธ์ด ์ฝ์๋ค๋ ๊ฒ์ ์๋ฒ์ ์๋ ค์ฃผ๋ js ํจ์
- ํด๋ผ์ด์ธํธ๊ฐ ์ ์ฅํ ๋ฐฉ๊ณผ ๋ณธ์ธ์ ์์ด๋(m_id)๋ฅผ ์๋ ค์ค๋ค.
- ์๋ฒ๋ db์ ํด๋น ์ ์ ๊ฐ ์ฝ์๋ค๋ ์ฌ์ค์ ์ ๋ฐ์ดํธ
- db ์ ๋ฐ์ดํธ ์ดํ ์ฝ๋ฐฑํจ์๋ก ์ ์ ๋ send('readMember') ํธ์ถ
function readMember() {
$.ajax({
url: _contextPath + '/talk/readMember',
data: { 'roomNumber' : $("#roomNumber").val(),
'm_id' : $("#m_id").val()
},
type: 'get',
success: function (res) {
send('readMember');
},
error : function(err){
console.log('error');
}
});
}
โ๏ธ send('readMember')๋ฅผ ํตํด ์๋ฒ์ type์ด 'readMember'์ธ ์์ผ ๋ฉ์์ง ์ ์ก
- type์ 'readMember'์ธ ์์ผ ๋ฉ์์ง ์ ์กํ๋ js ํจ์
function send(type) {
if (!type) {
type = 'message';
}
var option ={
type: type,
roomNumber : $("#roomNumber").val(),
sessionId : $("#sessionId").val(),
userName : $("#m_name").val(),
msg : $("#chatting").val(),
m_id : $("#m_id").val()
}
ws.send(JSON.stringify(option))
if (type == 'message') {
$('#chatting').val("");
}
}
โ๏ธ type์ด 'readMember'์ธ ์์ผ ๋ฉ์์ง๋ฅผ ์๋ฒ๊ฐ ๋ฐ์์ ๋
sendMessageOfUpdateOfSession(rN) ๋ฉ์๋ ํธ์ถ
โ๏ธ sendMessageOfUpdateOfSession(rN)๋ฅผ ํตํด ํด๋น ๋ฐฉ ์์ผ ์ธ์ ๋ค์๊ฒ type์ด 'updateOfSession'์ธ ์์ผ ๋ฉ์์ง ์ ๋ฌ
- ๋ฐฉ๋ฒํธ rN์ ๋ณ์๋ก ๋ฐ๋ ์๋ฐ ๋ฉ์๋
- ํด๋น ๋ฐฉ์ ์๋ ๋ชจ๋ ์์ผ ์ธ์ ๋ค์๊ฒ type์ด 'updateOfSession'์ธ ์์ผ ๋ฉ์์ง ์ ๋ฌ
private void sendMessageOfUpdateOfSession(String roomNumber) {
JSONObject objOfNumOfSession = new JSONObject();
objOfNumOfSession.put("type", "updateOfSession");
int numOfAllMember = talkService.selectJoinGroupMemberList(Integer.parseInt(roomNumber)).size();
int numOfSessionMember = findNumOfSessionMember(roomNumber);
objOfNumOfSession.put("numOfAllMember", numOfAllMember);
objOfNumOfSession.put("numOfSessionMember", numOfSessionMember);
sendMessage(roomNumber, objOfNumOfSession); // ํด๋น ๋ฐฉ์ ์ฐ๊ฒฐ๋์ด ์๋ ์์ผ ์ธ์
๋ค์๊ฒ ๋ฉ์์ง ์ ๋ฌํ๋ ๋ฉ์๋
}
โ๏ธ type์ด 'updateOfSession'์ธ ์์ผ ๋ฉ์์ง๋ฅผ ํด๋น ๋ฐฉ์ ์์ผ ์ฐ๊ฒฐ๋์ด ์๋ ํด๋ผ์ด์ธํธ๋ค์ด ๋ฐ์์ ๋
- countUnread($("#roomNumber").val()) ํธ์ถ
โ๏ธ countUnread($("#roomNumber").val())๋ฅผ ํตํด ๋ฉ์์ง๋ง๋ค ์ฝ์ง ์์ ์ฌ๋ ์ ๋ณด์ฌ์ฃผ๊ธฐ
countUnread(tkrm_num)
- ๋ฐฉ๋ฒํธ๋ฅผ ๋ณ์๋ก ๋ฐ๋ js ํจ์
- ์๋ฒ์ ajax๋ก ๋ฐฉ๋ฒํธ๋ฅผ ๋๊ธฐ๋ฉด์ ํด๋น ๋ฐฉ์ ๋ชจ๋ ๋ฉ์์ง๋ง๋ค ์ฝ์ง ์์ ์ฌ๋ ์๋ฅผ ์๋ต๋ฐ๋๋ค.
- ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ๋ฉ์์ง ์์ ๋ณด์ฌ์ค๋ค.
function countUnread(tkrm_num) {
$.ajax({
url : _contextPath + '/talk/countUnread',
data: {'roomNumber' : $("#roomNumber").val()},
type : 'get',
success: function(res) {
let numOfUnreadList = res.numOfUnreadList;
for(var i = 0; i<numOfUnreadList.length; i++) {
let tk_num = numOfUnreadList[i].tk_num;
let unread_num = numOfUnreadList[i].unread_num;
$('#unReadNum' + tk_num).text(unread_num);
if (unread_num == 0) {
$('#unReadNum' + tk_num).text('');
}
}
},
error : function(err){
console.log('error');
}
});
}
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ก ์์ผ ์ฑํ ์์ ๋ฉ์์ง๋ง๋ค ์ฝ์ง ์์ ์ฌ๋ ์ ๋ณด์ฌ์ฃผ๊ธฐ ๋ฐฉ๋ฒ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@ino5/๋ํ์์-๋ฉ์์ง๋ง๋ค-์ฝ์ง-์์-์ฌ๋-์-๋ณด์ฌ์ฃผ๊ธฐ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค