크롬80버전 결제 이슈, 영카트5 주요패치 확인!

웹소켓 질문

컨텐츠몰 10% 할인 기간연장!
그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
웹소켓 질문

QA

SIR 컨텐츠몰 10% 특별할인 - 코로나19 바이러스로 어려운 시기, SIR이 함께 하겠습니다.

웹소켓 질문

본문

클라이언트에서 서버한테 요청없이 서버에서 클라한테 요청을 하려고 합니다

 

현재까지 해본결과 클라이언트가 서버에게 요청하지 않는한 서버가 클라한테 자동으로 이벤트를 보내는건 안되는거같아서 아래 방법으로 시도했는데 이게 mysql을 연결하는거라 트래픽이 걸릴지 의문이네요..

 

- server.js

루프 시작 {
// 데이터베이스 g5_member에 mb_1이 1 일때까지 루프를 돌린다.
// mb_1이 1이면 io.socket.emit('event', data);
} 루프종료

 

server.js javascript에서 mysql에 연결해서 특정멤버의 mb_1이 1이 될때까지 루프를 돌리다가

1이면 클라이언트한테 이벤트를 보내고자 합니다..

 

이 방법말곤 없나요?.. 서버가 클라한테 주기적으로 계속 요청을 보내는..

위 방법은 서버한테 무리가 있을거같아서..

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 4

BlueAngel님의 답변

이벤트 함수를 하나 만드세요 루프가 돌아갈..

계속돌리기보다 mb_1 이 1인지 아닌지 체크하는

 

setInterval 로 주기적으로 이벤트 함수를 돌려주세요 

주소복사
답변의 댓글
질문하는사람님의 댓글
인터벌을 꼭 써야되나요? 그냥 루프만 돌리면 안되나요? 누군가 댓글을 단다면 즉각적으로 알림이왔다고 처리하려는데 인터벌을 쓰면 좀 늦지 않을까요? 그리고 mysql에 연결해서 루프를 돌리면 부화가 발생하진 않나요?ajax를 계속 호출하는것처럼..

BlueAngel님의 답변

웹에서 mb_1 1이될때 이벤트를 서버로 던져주고 

이때 던져진 이벤트를 서버에서 실행하던 다시 웹으로 던져주던

하면 됩니다.  그럼 루프가 돌필요가 없겠죠... 1번실행(이벤트)

 

루프가 돌게되면 mb_1 1이된 순간부터 계속 동작할것입니다.

주소복사
답변의 댓글
질문하는사람님의 댓글
웹에서 mb_1을 체크하는거 자체가 루프 아닌거요? 그리고 웹에서 mb_1을 체크하려면 ajax나 페이지 이동이 있어야할텐데 홈페이지에서 아무 작업도하지않고 가만히 있어도 알림이 왔다고 뜨게할려는거라서용 ㅠ

균이님의 답변

누군가 댓글을 단다면 즉각적으로 알림이왔다고 처리하려는데 <---이것이라면

댓글 등록 완료 후 원하는 작업을 하도록 만들면 될텐데요

 

주소복사
답변의 댓글
균이님의 댓글
write_comment_update.php 하단에
server.js를 호출하는 html 페이지를 만들고 스크립트가 실행되게 하면 되는데 php에서 보내는 것이 안된다는 말이 이해가 안되는군요
루프시작 저것을 빼버리면....

~
?>
<script src='server.js'></script>

또는
?>
<script>
~~여기에 소스넣기
</script>

BlueAngel님의 답변

대댓글이 안되서 남겨요

그래서 소켓을 쓰는거죠 소켓은 웹변화없이 가능하니...

 

A가 쓴글에 B가 댓글을 남길경우 B댓글남길시

소켓으로 서버에 알려주면 소켓에서 A한테 이벤트를 뿌려주면 됩니다.

간단히 채팅을 생각하면 됩니다. 

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 85,584 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT