Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

XE에서 사용할건 아니고 그누보드에서 사용하려고 하는데

소켓을 사용하지않고 사용자가 현재 사이트에 접속중인지 아니면 홈페이지를 떠났는지 여부를 판단할수 있는 방법이 있을까요?

  • profile
    떠난지는 확인할 방법이 없습니다.

    1초만에 브라우저를 껐을 때, 홈페이지라는 것이 아에 그냥 페이지만 보여주고 서버와는 통신을 하지 않기때문에 그 뒤의 기록이 없거든요.

    즉 홈페이지와 연결된 소통창구를 지속적으로 연결해두는 방식을 이용해야 하는데 그 방식 자체가 소켓이거든요.

    다만 어느페이지를 보는지 홈페이지에 얼마나 들어와 활동하고 있는지를 알 수 있는 방법으로는 그누보드의 현재 접속자 관련 기능으로 처리하시면 됩니다.

    아니면 구글애널리틱스 관련 기능도 있고요.
  • profile ?
    답변 감사합니다 혹시 ajax를 통해 주기적으로 서버와 통신하면서 일정시간동안 클라이언트에 응답이없으면 리스트에서 제외하는 방식으로하는건 어떨까하는데 어떨까요? 찾아보니
    https://okky.kr/article/70530 링크같은 방식이 있어서요
  • ? profile
    서버부터 터질겁니다. 별 방문자 없는데..
  • profile

    개인적으로 사용하는 방법은
    애드온으로 페이지 이동시 회원 로그인 확인용 테이블에 해당 회원의 로우 타임 컬럼에 시간을 저장합니다.
    불필요한 반복 작업을 피하기 위해 세션을 이용해서 1분 간격으로 저장을 합니다.

    해당 테이블에서 저장된 시간 기준으로 최근시간 기준 10분 으로 해서 위젯에 현재 접속자로 출력해 주거나 혹은 db에서 10분 이내의 회원의 회원번호를 가져와 해당 배열에 글쓴이 등의 회원번호가 있다면 현재 접속자로 표시해주거나 하는 등 다양하게 활용하고 있습니다.

    접속여부 확인은 회원만 하고 있습니다.

    10분 이전의 기록까지 접속으로 간주해서 떠난지 10분이 된 회원까지 현재접속으로 취급합니다.

  • profile

    예전과 달리 요즘은 "백그라운드 탭"이라는 변수도 있습니다. 어딘가에 탭을 열어놓기만 하고 일주일이고 한 달이고 확인하지 않는 거죠. 요즘은 컴퓨터를 종료하는 일이 드물고 절전모드만 드나드니까, 웬만해선 브라우저 탭이 닫힐 일이 없어요. 사용자는 이 사이트가 존재한다는 사실 자체를 한 달 전에 잊어버렸는데, 소켓이든 핑이든 뭔가를 계속 연결해 두고 있다면 접속자로 간주되는 문제가 있겠지요.

  • profile ?
    답변 감사합니다 혹시 ajax를 통해 주기적으로 서버와 통신하면서 일정시간동안 클라이언트에 응답이없으면 리스트에서 제외하는 방식으로하는건 어떨까하는데 어떨까요? 찾아보니
    https://okky.kr/article/70530 링크같은 방식이 있어서요
  • ? profile
    ajax 요청을 받아서 리스트를 업데이트해 주는 부분을 아주 가볍게 구현하신다면 괜찮습니다. 게시판 목록에서 글 10개 정도 모두 새 탭에 열어놓고 하나씩 읽는 사람들이 꽤 많거든요. ajax가 동시에 10개씩 들어가면 서버가 터질 수도 있습니다.