테스트 사이트 - 개발 중인 베타 버전입니다

알고리즘 및 조언을 얻고자 합니다.

· 11년 전 · 1243 · 13

안녕하세요. 

 

도저히 생각이 떠오르지 않는 이 답답함 때문에 팁을 얻고자 남겨봅니다.

  

소켓 채팅을 구현을 하실때 채팅 접속자 목록이 나오는 상태에서 채팅을 하다가

접속자가 버튼을 클릭하지 앟고 정상적인 방법이 아닌 창을 강제로 닫거나 컴퓨터를 종료하였을때

이 접속자가 채팅방을 나가는것을 체크하고자 합니다.

 

어떠한 방법으로 체크를 하시나요??

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 13개

노드라면
옵션중에
disconnect 가 있습니다
sock.io node js 를 이용한건 아니고요
자체 개발을 하고있습니다.
그래서 disconnect는 해당 사항이 없네요.
답변 감사합니다.

내용을 좀 더 덧붙히자면.................

소켓 서버를 이용 할때요
접속자 목록을 출력합니다.
근데 여기서 클라이언트를 아이피 주소로 물고 있기때문에
공유기를 사용하는 내부 아이피 접속자들일 경우에는 외부아이피가 동일하게됩니다.
그렇다면 이 접속자 목록을 실시간 개별 체크해서 컴터를 강제 종료 및 프로그램 강제 종료시
실시간 체크된 개별 접속자 목록을 제외 시켜줘야 하는데요.

방법이 없을까요??
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=129532&ref=129512


다른 방법으로 짜본적이 없어서 ㅠ.ㅠ
검색해서 링크 띄워 드립니다
이렇게까지 검색까지 해주셔서 감사합니다.
위 사항은 참고를 했지만 아직 해결은 못했네요.ㅎㅎ
그래도 좋은 팁 하나라도 놓치지 않고 기억해둬야겠네요^^
지식 하나 더 배워갑니다
즐거운 하루 보내세요
엥? 어떤 소켓이던 무관하게 disconnect처리가 안되는 소켓은 모든 언어를 막론해서 없을껀데요...; 대체 어느 환경이길래
소켓 통신을 웹과하는 유형이에요.ㅎㅎ
11년 전
1. 정상적으로 창을 닫는 경우
- 창의 unload 이벤트에 disconnect 코드를 넣으면 됩니다.
: 또는 disconect 했다는 메세지를 서버로 보내고, 서버에서 해당 메세지가 온 클라이언트를 disconnect 하면 됩니다.

2. 비정상적으로 종료하는 경우
: 랜선이 물리적으로 뽑히는 경우, 인터넷이 강제종료된 경우, 핸드폰에서 밧데리가 나가거나, 그에 준하는 경우
- 위의 경우 비동기소켓에서는 접속이 끊어진걸 서버소켓이 체크를 못합니다.
따라서, heartbeat 를 보내는 방식을 씁니다.
하트비트를 체크하여, 특정시간이상(예를 들어 1분) 패킷이 없는 경우 강제종료를 시킵니다.

socketio 도 heartbeat 를 보내는걸로 알고 있는데, 자세히는 확인을 해봐야 할듯.
heartbeat 이거는 어떻게 체크를 하는지요??
위에 있잖아요... 타이머 돌려서 정기적으로 신호를 보내고 신호에 응답이 없으면 끊긴거로 간주하는걸 heartbeat라 합니다.
아 그게 그런 의미였군요..
지식 얻어갑니다.
감사합니다^^

게시글 목록

번호 제목
27925
27922
6972
19602
19601
19599
6961
30941
19597
19596
19595
19594
30939
19593
6959
6957
6953
27920
19592
19591
19590
6949
6947
20826
20823
19589
27913
27912
19588
20822
19587
19586
27887
20819
27883
19585
19584
19583
19582
19581
19580
6945
24622
19578
6938
6935
27880
20818
19575
20815
20812
20809
6932
6931
6929
19571
19570
20802
27877
20797
6923
20795
6918
6914
20789
6899
27860
6898
27856
6895
6891
6890
6881
6874
27852
6860
6857
19569
19565
19564
27844
19563
24617
19554
6854
19553
19531
6850
6848
27842
6846
6842
6839
6834
6829
6824
6820
27839
6818
19529