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

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

· 11년 전 · 1250 · 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라 합니다.
아 그게 그런 의미였군요..
지식 얻어갑니다.
감사합니다^^

게시글 목록

번호 제목
28080
7612
7598
7595
19842
28079
19840
7593
28076
7590
28072
28065
19836
7586
28058
7573
31754
7552
28057
30993
28052
7546
7544
7538
7519
30992
19834
7517
7512
7511
19832
19820
7509
24658
7508
7507
19818
30990
7506
7505
7498
7492
28051
7481
30988
19813
19812
7477
7476
7471
7467
19810
7464
19809
7463
7457
30980
7450
28043
7447
7440
28040
7438
7430
7427
7423
7414
7408
7405
7401
7400
19808
7398
7393
7389
19805
7382
7379
7378
7363
7361
7356
19804
7355
7352
19786
7342
7336
7332
19783
7328
7325
7324
28036
19782
7321
26574
7314
7312
19781