5 글 보임 - 1 에서 5 까지 (총 5 중에서)
-
글쓴이글
-
2023년 2월 6일 16:35 #67067
황정민참가자채팅에 전송 버튼을 누르면 DB에는 들어가는데 뷰에서 업데이트가 되지 않습니다. 도와주십쇼 ㅜㅠ 채팅방 누르면 채팅은 뜹니다. chat.ejs var clickId; var eventSource; $('.list-group-item').click(function(){ clickId = this.dataset.id; $('.chat-content').html(''); if(eventSource != undefined) { eventSource.close(); } eventSource = new EventSource('/message/' + clickId); eventSource.addEventListener('test', function (e){ var takeOut = JSON.parse(e.data); takeOut.forEach((a) => { $('.chat-content').append(`<li><span class="chat-box">${a.content}</span></li>`) }); }); }); $('#send').on("click", function() { let chatInfo = {content : $("#chat-input").val(), parent : clickId} $.post('/message', chatInfo).then(()=> { console.log("전송 성공"); }) })
server.js
app.get('/message/:parentid', 로그인했니, function(request, response){
response.writeHead(200, { "Connection": "keep-alive", "Content-Type": "text/event-stream", "Cache-Control": "no-cache", }); db.collection('message').find({ parent: request.params.parentid }).toArray() .then((result)=>{ console.log(result); response.write('event: test\n'); response.write(`data: ${JSON.stringify(result)}\n\n`); }); const findDocu = [ { $match: { 'fullDocument.parent': request.params.parentid } } ]; const changeStream = db.collection('message').watch(findDocu); changeStream.on('change', result => { var addDocu = [result.fullDocument]; console.log(addDocu); response.write(`data: ${JSON.stringify(addDocu)}\n\n`); }); });
2023년 2월 6일 19:23 #67100
codingapple키 마스터크롬콘솔창엔 뭐 뜨는거없나 확인해봅시다 eventSource.addEventListener('test', 안에 console.log같은거 써서 잘 실행되나 출력도 해봅시다
2023년 2월 6일 20:26 #67109
황정민참가자server.js 에 changeStream.on('change', result => { 까지는 작동하지만 chat.ejs에 eventSource.addEventListener('test', function 이 작동을 안합니다. 콘솔창에 에러는 없네요 으악.. 찾을수가 없어요
2023년 2월 7일 09:51 #67162
codingapple키 마스터changeStream.on('change', 안에 응답.write('event: test\n'); 이벤트명이 빠진듯요
-
글쓴이글
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
- 답변은 로그인 후 가능합니다.